diff options
author | Gunnar Beutner <gbeutner@serenityos.org> | 2021-05-13 22:14:07 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-05-14 00:35:57 +0200 |
commit | c41f13f10b8a78c86aa193271dd702e2d9d043ef (patch) | |
tree | d0d2cd95c07b56ccfde20ae8b1fd31fcb1209364 /Userland/DevTools/Profiler/SamplesModel.cpp | |
parent | 8614d18956f90edb08c5057f8448493b4cd3315c (diff) | |
download | serenity-c41f13f10b8a78c86aa193271dd702e2d9d043ef.zip |
Kernel+Profiler: Track lost time between profiler timer ticks
We can lose profiling timer events for a few reasons, for example
disabled interrupts or system slowness. This accounts for lost
time between CPU samples by adding a field lost_samples to each
profiling event which tracks how many samples were lost immediately
preceding the event.
Diffstat (limited to 'Userland/DevTools/Profiler/SamplesModel.cpp')
-rw-r--r-- | Userland/DevTools/Profiler/SamplesModel.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Userland/DevTools/Profiler/SamplesModel.cpp b/Userland/DevTools/Profiler/SamplesModel.cpp index ce8161d343..af23693c70 100644 --- a/Userland/DevTools/Profiler/SamplesModel.cpp +++ b/Userland/DevTools/Profiler/SamplesModel.cpp @@ -45,6 +45,8 @@ String SamplesModel::column_name(int column) const return "TID"; case Column::ExecutableName: return "Executable"; + case Column::LostSamples: + return "Lost Samples"; case Column::InnermostStackFrame: return "Innermost Frame"; default: @@ -81,6 +83,10 @@ GUI::Variant SamplesModel::data(const GUI::ModelIndex& index, GUI::ModelRole rol return (u32)event.timestamp; } + if (index.column() == Column::LostSamples) { + return event.lost_samples; + } + if (index.column() == Column::InnermostStackFrame) { return event.frames.last().symbol; } |