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

Kernel: Add support for profiling kmalloc()/kfree()

This commit is contained in:
Gunnar Beutner 2021-05-13 13:09:00 +02:00 committed by Andreas Kling
parent 572bbf28cc
commit 277f333b2b
10 changed files with 84 additions and 2 deletions

View file

@ -52,6 +52,16 @@ struct [[gnu::packed]] ContextSwitchPerformanceEvent {
u32 next_tid;
};
struct [[gnu::packed]] KMallocPerformanceEvent {
size_t size;
FlatPtr ptr;
};
struct [[gnu::packed]] KFreePerformanceEvent {
size_t size;
FlatPtr ptr;
};
struct [[gnu::packed]] PerformanceEvent {
u16 type { 0 };
u8 stack_size { 0 };
@ -68,6 +78,8 @@ struct [[gnu::packed]] PerformanceEvent {
ProcessExecPerformanceEvent process_exec;
ThreadCreatePerformanceEvent thread_create;
ContextSwitchPerformanceEvent context_switch;
KMallocPerformanceEvent kmalloc;
KFreePerformanceEvent kfree;
} data;
static constexpr size_t max_stack_frame_count = 64;
FlatPtr stack[max_stack_frame_count];