1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 03:07:44 +00:00

Kernel: Move process exit perf events to PerformanceManager

This commit is contained in:
Brian Gianforcaro 2021-05-07 01:41:13 -07:00 committed by Andreas Kling
parent 8bf4201f50
commit d7089a0417
2 changed files with 11 additions and 5 deletions

View file

@ -29,6 +29,15 @@ public:
}
}
inline static void add_process_exit_event(Process& process)
{
if (g_profiling_all_threads) {
VERIFY(g_global_perf_events);
[[maybe_unused]] auto rc = g_global_perf_events->append_with_eip_and_ebp(
process.pid(), 0, 0, 0, PERF_EVENT_PROCESS_EXIT, 0, 0, nullptr);
}
}
inline static void add_thread_created_event(Thread& thread)
{
if (auto* event_buffer = thread.process().current_perf_events_buffer()) {

View file

@ -21,6 +21,7 @@
#include <Kernel/KSyms.h>
#include <Kernel/Module.h>
#include <Kernel/PerformanceEventBuffer.h>
#include <Kernel/PerformanceManager.h>
#include <Kernel/Process.h>
#include <Kernel/RTC.h>
#include <Kernel/StdLib.h>
@ -245,11 +246,7 @@ Process::~Process()
VERIFY(thread_count() == 0); // all threads should have been finalized
VERIFY(!m_alarm_timer);
if (g_profiling_all_threads) {
VERIFY(g_global_perf_events);
[[maybe_unused]] auto rc = g_global_perf_events->append_with_eip_and_ebp(
pid(), 0, 0, 0, PERF_EVENT_PROCESS_EXIT, 0, 0, nullptr);
}
PerformanceManager::add_process_exit_event(*this);
{
ScopedSpinLock processes_lock(g_processes_lock);