From 2b7f5091f17bff109416dd91f20bd64fe9786ccc Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Tue, 25 Feb 2020 23:08:52 +0100 Subject: [PATCH] Store sampling period. --- client/TracyProfiler.cpp | 3 ++- client/TracyProfiler.hpp | 1 + client/TracySysTrace.cpp | 5 +++-- client/TracySysTrace.hpp | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index 9a6be2b9..a07073cf 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -1024,6 +1024,7 @@ Profiler::Profiler() , m_broadcast( nullptr ) , m_noExit( false ) , m_zoneId( 1 ) + , m_samplingPeriod( 0 ) , m_stream( LZ4_createStream() ) , m_buffer( (char*)tracy_malloc( TargetFrameSize*3 ) ) , m_bufferOffset( 0 ) @@ -1072,7 +1073,7 @@ Profiler::Profiler() new(s_compressThread) Thread( LaunchCompressWorker, this ); #ifdef TRACY_HAS_SYSTEM_TRACING - if( SysTraceStart() ) + if( SysTraceStart( m_samplingPeriod ) ) { s_sysTraceThread = (Thread*)tracy_malloc( sizeof( Thread ) ); new(s_sysTraceThread) Thread( SysTraceWorker, nullptr ); diff --git a/client/TracyProfiler.hpp b/client/TracyProfiler.hpp index 9aaa43a8..7cb6670a 100644 --- a/client/TracyProfiler.hpp +++ b/client/TracyProfiler.hpp @@ -619,6 +619,7 @@ private: UdpBroadcast* m_broadcast; bool m_noExit; std::atomic m_zoneId; + int64_t m_samplingPeriod; uint64_t m_threadCtx; int64_t m_refTimeThread; diff --git a/client/TracySysTrace.cpp b/client/TracySysTrace.cpp index 1133e1a5..36814e67 100644 --- a/client/TracySysTrace.cpp +++ b/client/TracySysTrace.cpp @@ -160,7 +160,7 @@ void WINAPI EventRecordCallback( PEVENT_RECORD record ) } } -bool SysTraceStart() +bool SysTraceStart( int64_t& samplingPeriod ) { s_pid = GetCurrentProcessId(); @@ -191,6 +191,7 @@ bool SysTraceStart() interval.Interval = 1250; // 8 kHz const auto intervalStatus = TraceSetInformation( 0, TraceSampledProfileIntervalInfo, &interval, sizeof( interval ) ); if( intervalStatus != ERROR_SUCCESS ) return false; + samplingPeriod = 125*1000; } const auto psz = sizeof( EVENT_TRACE_PROPERTIES ) + sizeof( KERNEL_LOGGER_NAME ); @@ -523,7 +524,7 @@ void SysTraceInjectPayload() } #endif -bool SysTraceStart() +bool SysTraceStart( int64_t& samplingPeriod ) { if( !TraceWrite( TracingOn, sizeof( TracingOn ), "0", 2 ) ) return false; if( !TraceWrite( CurrentTracer, sizeof( CurrentTracer ), "nop", 4 ) ) return false; diff --git a/client/TracySysTrace.hpp b/client/TracySysTrace.hpp index 6b1fc745..688cbf2a 100644 --- a/client/TracySysTrace.hpp +++ b/client/TracySysTrace.hpp @@ -12,7 +12,7 @@ namespace tracy { -bool SysTraceStart(); +bool SysTraceStart( int64_t& samplingPeriod ); void SysTraceStop(); void SysTraceWorker( void* ptr );