[kernel] Add RAII profiler object

Added profiler.h which defines classes and macros for defining profiler
objects. Also added gdb command j6prof for printing profile data. Added
the syscall_profiles profiler class and auto wrapping of syscalls with
profile objects.

Other changes in this commit:

- Made the gdb command `j6threads` argument for specifying a CPU
  optional. Without an argument, it loops through all CPUs.
- Switched to -mcmodel=kernel for kernel code, which makes `call`
  instructions easier to follow when debugging / looking at disassembly.
This commit is contained in:
Justin C. Miller
2022-02-26 13:19:21 -08:00
parent a9f40cf608
commit a03804b09d
4 changed files with 112 additions and 12 deletions

View File

@@ -19,7 +19,7 @@ variables:
"-mno-sse",
"-fno-omit-frame-pointer",
"-mno-red-zone",
"-mcmodel=large",
"-mcmodel=kernel",
"-g3",
"-ggdb",