1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-21 17:21:01 +00:00
serenity/Kernel
Gunnar Beutner eb798d5538 Kernel+Profiler: Improve profiling subsystem
This turns the perfcore format into more a log than it was before,
which lets us properly log process, thread and region
creation/destruction. This also makes it unnecessary to dump the
process' regions every time it is scheduled like we did before.

Incidentally this also fixes 'profile -c' because we previously ended
up incorrectly dumping the parent's region map into the profile data.

Log-based mmap support enables profiling shared libraries which
are loaded at runtime, e.g. via dlopen().

This enables profiling both the parent and child process for
programs which use execve(). Previously we'd discard the profiling
data for the old process.

The Profiler tool has been updated to not treat thread IDs as
process IDs anymore. This enables support for processes with more
than one thread. Also, there's a new widget to filter which
process should be displayed.
2021-04-26 17:13:55 +02:00
..
ACPI Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
API Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Arch Everywhere: Remove empty line after function body opening curly brace 2021-04-25 20:20:00 +02:00
Devices Everywhere: Remove empty line after function body opening curly brace 2021-04-25 20:20:00 +02:00
FileSystem Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
Heap Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Interrupts AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
Modules Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Net Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
PCI Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Storage Everywhere: Remove empty line after function body opening curly brace 2021-04-25 20:20:00 +02:00
Syscalls Kernel+Profiler: Improve profiling subsystem 2021-04-26 17:13:55 +02:00
Tasks Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Time AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
TTY Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
VirtIO AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
VM Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
.gitignore Meta: Expect sync-local.sh script at repository root 2021-01-30 09:18:46 +01:00
AddressSanitizer.cpp Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMakeLists.txt Meta: Add an option to precompile some very common AK headers 2021-04-21 14:29:46 +02:00
CMOS.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Console.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Console.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CoreDump.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
CoreDump.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Debug.h.in Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DMI.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DMI.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DoubleBuffer.cpp Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
DoubleBuffer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Forward.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FutexQueue.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FutexQueue.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
init.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
IO.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KBuffer.h AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
KBufferBuilder.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KBufferBuilder.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
kprintf.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KResult.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
kstdio.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KSyms.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KSyms.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
linker.ld Kernel: Define a KERNEL_VIRTUAL_BASE in the linker script 2021-03-04 18:25:01 +01:00
Lock.cpp Kernel: Utilize AK::SourceLocation for LOCK_DEBUG instrumentation. 2021-04-25 09:38:27 +02:00
Lock.h Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
LockMode.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Multiboot.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Panic.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Panic.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
PerformanceEventBuffer.cpp Kernel+Profiler: Improve profiling subsystem 2021-04-26 17:13:55 +02:00
PerformanceEventBuffer.h Kernel+Profiler: Improve profiling subsystem 2021-04-26 17:13:55 +02:00
PhysicalAddress.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Process.cpp Kernel+Profiler: Improve profiling subsystem 2021-04-26 17:13:55 +02:00
Process.h Kernel+Profiler: Improve profiling subsystem 2021-04-26 17:13:55 +02:00
ProcessGroup.cpp AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
ProcessGroup.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Random.cpp Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
Random.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTC.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTC.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Scheduler.cpp Kernel+Profiler: Improve profiling subsystem 2021-04-26 17:13:55 +02:00
Scheduler.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
SpinLock.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StdLib.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StdLib.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Syscall.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Thread.cpp Kernel: Remove the now defunct RESTORE_LOCK(..) macro. 2021-04-25 09:38:27 +02:00
Thread.h Kernel: Utilize AK::SourceLocation for LOCK_DEBUG instrumentation. 2021-04-25 09:38:27 +02:00
ThreadBlockers.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ThreadTracer.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ThreadTracer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TimerQueue.cpp AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
TimerQueue.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UBSanitizer.cpp Everywhere: Remove empty line after function body opening curly brace 2021-04-25 20:20:00 +02:00
UBSanitizer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UnixTypes.h Kernel+Profiler: Improve profiling subsystem 2021-04-26 17:13:55 +02:00
UnveilNode.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UserOrKernelBuffer.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UserOrKernelBuffer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
VirtualAddress.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WaitQueue.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WaitQueue.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WorkQueue.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WorkQueue.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00