mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 23:50:19 +00:00
Kernel: Create all kernel processes before enabling boot profiling
Process created performance events for kernel processes are only ever emitted for the kernel processes that exist when profiling is enabled. Any new kernel processes created after profiling is enabled will not have corresponding process created performance events, so all kernel processes should be created before enabling profiling. NetworkTask was the only kernel process being created after enabling profiling, so we now just create it before enabling profiling. This fixes an issue where Profiler was failing to parse boot profiles as a result of NetworkTask not having a process created event.
This commit is contained in:
parent
897c4e5145
commit
fc1fd907b4
Notes:
sideshowbarker
2024-07-17 20:22:04 +09:00
Author: https://github.com/SamuelBowman Commit: https://github.com/SerenityOS/serenity/commit/fc1fd907b4 Pull-request: https://github.com/SerenityOS/serenity/pull/18548
1 changed files with 4 additions and 2 deletions
|
@ -420,6 +420,10 @@ void init_stage2(void*)
|
|||
g_init_pid = init_process->pid();
|
||||
init_thread->set_priority(THREAD_PRIORITY_HIGH);
|
||||
|
||||
NetworkTask::spawn();
|
||||
|
||||
// NOTE: All kernel processes must be created before enabling boot profiling.
|
||||
// This is so profiling_enable() can emit process created performance events for them.
|
||||
if (boot_profiling) {
|
||||
dbgln("Starting full system boot profiling");
|
||||
MutexLocker mutex_locker(Process::current().big_lock());
|
||||
|
@ -428,8 +432,6 @@ void init_stage2(void*)
|
|||
VERIFY(!result.is_error());
|
||||
}
|
||||
|
||||
NetworkTask::spawn();
|
||||
|
||||
Process::current().sys$exit(0);
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue