Profiler: Let the user ignore context switches

Now that the profiling timer is independent from the scheduler the
user will get quite a few CPU samples from "within" the scheduler.
These events are less useful when just profiling a user-mode process
rather than the whole system. This patch adds an option to Profiler to
hide these events.
This commit is contained in:
Gunnar Beutner 2021-05-13 22:11:44 +02:00 committed by Andreas Kling
commit d6b3513aab
Notes: sideshowbarker 2024-07-18 18:11:58 +09:00
4 changed files with 34 additions and 0 deletions

View file

@ -71,6 +71,12 @@ void TimelineTrack::paint_event(GUI::PaintEvent& event)
if (!m_process.valid_at(event.timestamp))
continue;
if (!m_profile.show_scheduler() && !event.frames.is_empty()) {
auto top_frame = event.frames[event.frames.size() - 1];
if (top_frame.symbol == "Kernel::Scheduler::yield()")
continue;
}
auto& histogram = event.in_kernel ? kernel_histogram : usermode_histogram;
histogram.insert(clamp_timestamp(event.timestamp), 1);
}