mirror of
https://github.com/RGBCube/serenity
synced 2025-05-21 15:15:07 +00:00
Kernel: Make perf_event() work for global profiles
Previously calls to perf_event() would end up in a process-specific perfcore file even though global profiling was enabled. This changes the behavior for perf_event() so that these events are stored into the global profile instead.
This commit is contained in:
parent
704bfe54b6
commit
4ab9d8736b
1 changed files with 7 additions and 3 deletions
|
@ -11,9 +11,13 @@ namespace Kernel {
|
||||||
|
|
||||||
KResultOr<int> Process::sys$perf_event(int type, FlatPtr arg1, FlatPtr arg2)
|
KResultOr<int> Process::sys$perf_event(int type, FlatPtr arg1, FlatPtr arg2)
|
||||||
{
|
{
|
||||||
if (!create_perf_events_buffer_if_needed())
|
auto events_buffer = current_perf_events_buffer();
|
||||||
return ENOMEM;
|
if (!events_buffer) {
|
||||||
return perf_events()->append(type, arg1, arg2, nullptr);
|
if (!create_perf_events_buffer_if_needed())
|
||||||
|
return ENOMEM;
|
||||||
|
events_buffer = perf_events();
|
||||||
|
}
|
||||||
|
return events_buffer->append(type, arg1, arg2, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue