From: Omar Sandoval Date: Sat, 9 Nov 2024 01:28:39 +0000 (-0800) Subject: proc/kcore: mark proc entry as permanent X-Git-Tag: v6.14-rc1~217^2^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c9136fad4c08288be26aaff3e63d634545b32a85;p=thirdparty%2Fkernel%2Flinux.git proc/kcore: mark proc entry as permanent drgn reads from /proc/kcore to debug the running kernel. For many drgn scripts, /proc/kcore is actually a bottleneck. use_pde() and unuse_pde() in prog_reg_read() show up hot in profiles. Since the entry for /proc/kcore can never be removed, this is useless overhead that can be trivially avoided by marking the entry as permanent. In my benchmark, this reduces the time per read by about 20 nanoseconds, from 235 nanoseconds per read to 215. Link: https://github.com/osandov/drgn/issues/106 Signed-off-by: Omar Sandoval Link: https://lore.kernel.org/r/60873e6afcfda3f08d0456f19e4733612afcf134.1731115587.git.osandov@fb.com Signed-off-by: Christian Brauner --- diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index e376f48c4b8bf..fba609a19ec4d 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -663,6 +663,7 @@ static int release_kcore(struct inode *inode, struct file *file) } static const struct proc_ops kcore_proc_ops = { + .proc_flags = PROC_ENTRY_PERMANENT, .proc_read_iter = read_kcore_iter, .proc_open = open_kcore, .proc_release = release_kcore,