1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-20 03:51:07 +00:00
serenity/DevTools/Profiler
Andreas Kling 5dafb72370 Kernel+Profiler: Make profiling per-process and without core dumps
This patch merges the profiling functionality in the kernel with the
performance events mechanism. A profiler sample is now just another
perf event, rather than a dedicated thing.

Since perf events were already per-process, this now makes profiling
per-process as well.

Processes with perf events would already write out a perfcore.PID file
to the current directory on death, but since we may want to profile
a process and then let it continue running, recorded perf events can
now be accessed at any time via /proc/PID/perf_events.

This patch also adds information about process memory regions to the
perfcore JSON format. This removes the need to supply a core dump to
the Profiler app for symbolication, and so the "profiler coredump"
mechanism is removed entirely.

There's still a hard limit of 4MB worth of perf events per process,
so this is by no means a perfect final design, but it's a nice step
forward for both simplicity and stability.

Fixes #4848
Fixes #4849
2021-01-11 11:36:00 +01:00
..
CMakeLists.txt Build: Embed application icons directly in the executables. 2020-12-21 00:12:59 +01:00
DisassemblyModel.cpp Kernel+Profiler: Make profiling per-process and without core dumps 2021-01-11 11:36:00 +01:00
DisassemblyModel.h AK: Make MappedFile heap-allocated and ref-counted 2021-01-10 16:49:13 +01:00
main.cpp Kernel+Profiler: Make profiling per-process and without core dumps 2021-01-11 11:36:00 +01:00
Profile.cpp Kernel+Profiler: Make profiling per-process and without core dumps 2021-01-11 11:36:00 +01:00
Profile.h Kernel+Profiler: Make profiling per-process and without core dumps 2021-01-11 11:36:00 +01:00
ProfileModel.cpp LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
ProfileModel.h Meta+DevTools: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
ProfileTimelineWidget.cpp LibGUI: Remove Widget's unused m_{foreground,background}_color 2021-01-02 23:31:22 +01:00
ProfileTimelineWidget.h Profiler: Rename from ProfileViewer :^) 2020-07-01 19:43:17 +02:00