1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:38:11 +00:00
serenity/Kernel/FileSystem
Andreas Kling 5dafb72370 Kernel+Profiler: Make profiling per-process and without core dumps
This patch merges the profiling functionality in the kernel with the
performance events mechanism. A profiler sample is now just another
perf event, rather than a dedicated thing.

Since perf events were already per-process, this now makes profiling
per-process as well.

Processes with perf events would already write out a perfcore.PID file
to the current directory on death, but since we may want to profile
a process and then let it continue running, recorded perf events can
now be accessed at any time via /proc/PID/perf_events.

This patch also adds information about process memory regions to the
perfcore JSON format. This removes the need to supply a core dump to
the Profiler app for symbolication, and so the "profiler coredump"
mechanism is removed entirely.

There's still a hard limit of 4MB worth of perf events per process,
so this is by no means a perfect final design, but it's a nice step
forward for both simplicity and stability.

Fixes #4848
Fixes #4849
2021-01-11 11:36:00 +01:00
..
BlockBasedFileSystem.cpp Revert "Kernel: Convert read_block method to get a reference instead of pointer" 2020-12-29 00:06:52 +01:00
BlockBasedFileSystem.h Revert "Kernel: Convert read_block method to get a reference instead of pointer" 2020-12-29 00:06:52 +01:00
Custody.cpp Kernel: Support read-only filesystem mounts 2020-05-29 07:53:30 +02:00
Custody.h Kernel: Support read-only filesystem mounts 2020-05-29 07:53:30 +02:00
DevFS.cpp Everywhere: Replace a bundle of dbg with dbgln. 2021-01-09 21:11:09 +01:00
DevFS.h Kernel: Introduce the DevFS 2020-12-27 23:07:44 +01:00
DevPtsFS.cpp AK: Make RefPtr, NonnullRefPtr, WeakPtr thread safe 2020-11-10 19:11:52 +01:00
DevPtsFS.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
ext2_fs.h Meta: Remove some copyright headers added in error 2020-01-25 10:34:32 +01:00
ext2_types.h Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
Ext2FileSystem.cpp Ext2FS: Zero out new space when growing an inode 2021-01-09 22:08:53 +01:00
Ext2FileSystem.h Kernel: Improve some low-memory situations with ext2 2021-01-01 23:43:44 +01:00
FIFO.cpp Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
FIFO.h Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
File.cpp Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
File.h Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
FileBackedFileSystem.cpp Kernel: Split BlockBasedFileSystem off FileBackedFileSystem 2020-07-05 12:26:27 +02:00
FileBackedFileSystem.h Kernel: Split BlockBasedFileSystem off FileBackedFileSystem 2020-07-05 12:26:27 +02:00
FileDescription.cpp Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
FileDescription.h Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
FileSystem.cpp Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
FileSystem.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Inode.cpp Kernel: Sprinkle some lockers in Inode 2020-12-31 02:10:31 +01:00
Inode.h Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
InodeFile.cpp Kernel: Pass "shared" flag to Region constructor 2021-01-02 16:57:31 +01:00
InodeFile.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
InodeIdentifier.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
InodeMetadata.h Everywhere: Redundant inline specifier on constexpr functions (#3807) 2020-10-20 18:08:13 +02:00
InodeWatcher.cpp Kernel: Move InodeWatcher::Event into Kernel/API/InodeWatcherEvent 2020-12-14 23:05:53 +01:00
InodeWatcher.h Kernel: Move InodeWatcher::Event into Kernel/API/InodeWatcherEvent 2020-12-14 23:05:53 +01:00
Plan9FileSystem.cpp Everywhere: Replace a bundle of dbg with dbgln. 2021-01-09 21:11:09 +01:00
Plan9FileSystem.h Kernel: Specify default memory order for some non-synchronizing Atomics 2021-01-04 19:13:52 +01:00
ProcFS.cpp Kernel+Profiler: Make profiling per-process and without core dumps 2021-01-11 11:36:00 +01:00
ProcFS.h Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
TmpFS.cpp TmpFS: Use fallible KBuffer API 2020-12-18 19:22:26 +01:00
TmpFS.h TmpFS: Use fallible KBuffer API 2020-12-18 19:22:26 +01:00
VirtualFileSystem.cpp Kernel: Don't allow non-root, non-owners to rmdir any child of sticky 2021-01-10 10:14:33 +01:00
VirtualFileSystem.h Kernel: Implement unveil() as a prefix-tree 2020-12-26 11:54:54 +01:00