From 381f7067965621c18bef902b0def6bf7b80d23a4 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Fri, 1 Apr 2022 18:46:46 +0200 Subject: [PATCH] Remember if there is branch retirement data. --- server/TracyWorker.cpp | 6 ++++-- server/TracyWorker.hpp | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index eb5449db..d9967a93 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -238,7 +238,7 @@ static tracy_force_inline void UpdateLockRange( LockMap& lockmap, const LockEven } template -static void ReadHwSampleVec( FileRead& f, SortedVector& vec, Slab& slab ) +static uint64_t ReadHwSampleVec( FileRead& f, SortedVector& vec, Slab& slab ) { uint64_t sz; f.Read( sz ); @@ -251,6 +251,7 @@ static void ReadHwSampleVec( FileRead& f, SortedVector& vec, S vec[i] = ReadTimeOffset( f, refTime ); } } + return sz; } // Should be just a simple comparison. Do this when protocol version changes. @@ -1915,7 +1916,7 @@ Worker::Worker( FileRead& f, EventType::Type eventMask, bool bgTasks ) ReadHwSampleVec( f, data.retired, m_slab ); ReadHwSampleVec( f, data.cacheRef, m_slab ); ReadHwSampleVec( f, data.cacheMiss, m_slab ); - ReadHwSampleVec( f, data.branchRetired, m_slab ); + if( ReadHwSampleVec( f, data.branchRetired, m_slab ) != 0 ) m_data.hasBranchRetirement = true; ReadHwSampleVec( f, data.branchMiss, m_slab ); } } @@ -7129,6 +7130,7 @@ void Worker::ProcessHwSampleBranchRetired( const QueueHwSample& ev ) auto it = m_data.hwSamples.find( ev.ip ); if( it == m_data.hwSamples.end() ) it = m_data.hwSamples.emplace( ev.ip, HwSampleData {} ).first; it->second.branchRetired.push_back( time ); + m_data.hasBranchRetirement = true; } void Worker::ProcessHwSampleBranchMiss( const QueueHwSample& ev ) diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index 439bc458..d44977aa 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -391,6 +391,7 @@ private: unordered_flat_map sourceFileCache; unordered_flat_map hwSamples; + bool hasBranchRetirement = false; unordered_flat_map fiberToThreadMap; };