From 5e199d1ab36c5a0f1c1d52245e4b15b4a1f83bc0 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Wed, 14 Aug 2019 16:28:54 +0200 Subject: [PATCH] Support ftrace on ARM. --- client/TracySysTrace.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/client/TracySysTrace.cpp b/client/TracySysTrace.cpp index bcc89886..552ecff9 100644 --- a/client/TracySysTrace.cpp +++ b/client/TracySysTrace.cpp @@ -211,6 +211,8 @@ bool SysTraceStart() if( !TraceWrite( TraceOptions, sizeof( TraceOptions ), "noirq-info", 11 ) ) return false; #if defined TRACY_HW_TIMER && ( defined __i386 || defined _M_IX86 || defined __x86_64__ || defined _M_X64 ) if( !TraceWrite( TraceClock, sizeof( TraceClock ), "x86-tsc", 8 ) ) return false; +#elif __ARM_ARCH >= 6 + if( !TraceWrite( TraceClock, sizeof( TraceClock ), "mono_raw", 8 ) ) return false; #endif if( !TraceWrite( SchedSwitch, sizeof( SchedSwitch ), "1", 2 ) ) return false; if( !TraceWrite( TracingOn, sizeof( TracingOn ), "1", 2 ) ) return false; @@ -284,7 +286,14 @@ void SysTraceWorker( void* ptr ) ptr++; // ']' while( *ptr == ' ' ) ptr++; +#if defined TRACY_HW_TIMER && ( defined __i386 || defined _M_IX86 || defined __x86_64__ || defined _M_X64 ) const auto time = ReadNumber( ptr ); +#elif __ARM_ARCH >= 6 + const auto ts = ReadNumber( ptr ); + ptr++; // '.' + const auto tus = ReadNumber( ptr ); + const auto time = ts * 1000000000ll + tus * 1000ll; +#endif ptr += 2; // ': ' if( memcmp( ptr, "sched_switch", 12 ) != 0 ) continue;