Skip to content

Commit 52939a8

Browse files
committed
refactor(profiling): simplify CPU timer internals
1 parent 8cf54e9 commit 52939a8

5 files changed

Lines changed: 5 additions & 36 deletions

File tree

ddtrace/internal/datadog/profiling/dd_wrapper/include/profiler_stats.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,7 @@ class ProfilerStats
114114
size_t get_sample_capture_cpu_time_us() const;
115115

116116
void add_wall_sample_capture_cpu_time_us(size_t cpu_time_us);
117-
size_t get_wall_sample_capture_cpu_time_us() const;
118-
119117
void add_cpu_timer_drain_cpu_time_us(size_t cpu_time_us);
120-
size_t get_cpu_timer_drain_cpu_time_us() const;
121118

122119
// Returns a JSON string containing relevant Profiler Stats to be included
123120
// in the libdatadog payload.

ddtrace/internal/datadog/profiling/dd_wrapper/src/profiler_stats.cpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -240,24 +240,12 @@ Datadog::ProfilerStats::add_wall_sample_capture_cpu_time_us(size_t cpu_time_us)
240240
wall_sample_capture_cpu_time_us += cpu_time_us;
241241
}
242242

243-
size_t
244-
Datadog::ProfilerStats::get_wall_sample_capture_cpu_time_us() const
245-
{
246-
return wall_sample_capture_cpu_time_us;
247-
}
248-
249243
void
250244
Datadog::ProfilerStats::add_cpu_timer_drain_cpu_time_us(size_t cpu_time_us)
251245
{
252246
cpu_timer_drain_cpu_time_us += cpu_time_us;
253247
}
254248

255-
size_t
256-
Datadog::ProfilerStats::get_cpu_timer_drain_cpu_time_us() const
257-
{
258-
return cpu_timer_drain_cpu_time_us;
259-
}
260-
261249
std::string
262250
Datadog::ProfilerStats::get_internal_metadata_json()
263251
{

ddtrace/internal/datadog/profiling/stack/include/cpu_sample_ring.hpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,6 @@ class CpuSampleRing
105105
tail_.store(advance(tail), std::memory_order_release);
106106
return true;
107107
}
108-
109-
// This is a best-effort snapshot. It must not be used to coordinate work.
110-
[[nodiscard]] bool empty() const noexcept
111-
{
112-
return tail_.load(std::memory_order_acquire) == head_.load(std::memory_order_acquire);
113-
}
114108
};
115109

116110
} // namespace CpuTimer

ddtrace/internal/datadog/profiling/stack/src/cpu_timer.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,14 +1180,7 @@ void
11801180
Engine::disable_for_fault_handler_swap()
11811181
{
11821182
#if DD_CPU_TIMER_SUPPORTED
1183-
std::lock_guard<std::mutex> lock(g_state.registry_lock);
1184-
if (!g_state.active.load(std::memory_order_acquire)) {
1185-
return;
1186-
}
1187-
g_state.handler_hijack_disable_count.fetch_add(1, std::memory_order_relaxed);
1188-
g_state.active.store(false, std::memory_order_release);
1189-
g_state.permanently_disabled.store(true, std::memory_order_release);
1190-
disable_all_timers_locked();
1183+
disable_all_timers_for_hijack();
11911184
#endif
11921185
}
11931186

ddtrace/internal/datadog/profiling/stack/test/test_cpu_sample_ring.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ TEST(CpuSampleRing, StartsEmpty)
6666
RawSample out{};
6767

6868
EXPECT_EQ(ring.capacity(), 64u);
69-
EXPECT_TRUE(ring.empty());
7069
EXPECT_FALSE(ring.pop_for_consumer(out));
7170
}
7271

@@ -80,15 +79,13 @@ TEST(CpuSampleRing, ProducerReserveDoesNotPublish)
8079
ASSERT_NE(reserved, nullptr);
8180
*reserved = sample;
8281

83-
EXPECT_TRUE(ring.empty());
8482
EXPECT_FALSE(ring.pop_for_consumer(out));
8583

8684
ring.publish_for_producer();
8785

88-
EXPECT_FALSE(ring.empty());
8986
ASSERT_TRUE(ring.pop_for_consumer(out));
9087
expect_sample_eq(out, sample);
91-
EXPECT_TRUE(ring.empty());
88+
EXPECT_FALSE(ring.pop_for_consumer(out));
9289
}
9390

9491
TEST(CpuSampleRing, CapacityKeepsOneSlotOpenToDistinguishFullFromEmpty)
@@ -111,7 +108,6 @@ TEST(CpuSampleRing, CapacityKeepsOneSlotOpenToDistinguishFullFromEmpty)
111108
}
112109

113110
RawSample out{};
114-
EXPECT_TRUE(ring.empty());
115111
EXPECT_FALSE(ring.pop_for_consumer(out));
116112
}
117113

@@ -147,7 +143,7 @@ TEST(CpuSampleRing, WraparoundPreservesFifoOrder)
147143
ASSERT_TRUE(ring.pop_for_consumer(out));
148144
expect_sample_eq(out, make_sample(expected_id));
149145
}
150-
EXPECT_TRUE(ring.empty());
146+
EXPECT_FALSE(ring.pop_for_consumer(out));
151147
}
152148

153149
TEST(CpuSampleRing, ConcurrentProducerAndConsumerPreserveWholeFifoSamples)
@@ -175,5 +171,6 @@ TEST(CpuSampleRing, ConcurrentProducerAndConsumerPreserveWholeFifoSamples)
175171
}
176172

177173
producer.join();
178-
EXPECT_TRUE(ring.empty());
174+
RawSample out{};
175+
EXPECT_FALSE(ring.pop_for_consumer(out));
179176
}

0 commit comments

Comments
 (0)