|
@@ -99,6 +99,12 @@ void Profile::rebuild_tree()
|
|
|
if (!process_filter_contains(event.pid, event.timestamp))
|
|
|
continue;
|
|
|
|
|
|
+ if (!m_show_scheduler && !event.frames.is_empty()) {
|
|
|
+ auto top_frame = event.frames[event.frames.size() - 1];
|
|
|
+ if (top_frame.symbol == "Kernel::Scheduler::yield()")
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
m_filtered_event_indices.append(event_index);
|
|
|
|
|
|
if (event.type == "malloc" && !live_allocations.contains(event.ptr))
|
|
@@ -450,6 +456,15 @@ void Profile::set_show_percentages(bool show_percentages)
|
|
|
m_show_percentages = show_percentages;
|
|
|
}
|
|
|
|
|
|
+void Profile::set_show_scheduler(bool show_scheduler)
|
|
|
+{
|
|
|
+ if (m_show_scheduler == show_scheduler)
|
|
|
+ return;
|
|
|
+ m_show_scheduler = show_scheduler;
|
|
|
+ // FIXME: This only works when kernel symbols are available
|
|
|
+ rebuild_tree();
|
|
|
+}
|
|
|
+
|
|
|
void Profile::set_disassembly_index(const GUI::ModelIndex& index)
|
|
|
{
|
|
|
if (m_disassembly_index == index)
|