diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2020-02-03 17:37:14 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-02-04 03:05:26 +0000 |
commit | d56c0d45f0e27f814e87a1676b6bdccccbc252e9 (patch) | |
tree | b567e075139c68c63f1866df23aebe0e86522899 /kernel/configs.c | |
parent | 0d6e24d430ef23280d8dea0ba1faeefc66c26a57 (diff) | |
download | linux-d56c0d45f0e27f814e87a1676b6bdccccbc252e9.tar.gz linux-d56c0d45f0e27f814e87a1676b6bdccccbc252e9.tar.bz2 linux-d56c0d45f0e27f814e87a1676b6bdccccbc252e9.zip |
proc: decouple proc from VFS with "struct proc_ops"
Currently core /proc code uses "struct file_operations" for custom hooks,
however, VFS doesn't directly call them. Every time VFS expands
file_operations hook set, /proc code bloats for no reason.
Introduce "struct proc_ops" which contains only those hooks which /proc
allows to call into (open, release, read, write, ioctl, mmap, poll). It
doesn't contain module pointer as well.
Save ~184 bytes per usage:
add/remove: 26/26 grow/shrink: 1/4 up/down: 1922/-6674 (-4752)
Function old new delta
sysvipc_proc_ops - 72 +72
...
config_gz_proc_ops - 72 +72
proc_get_inode 289 339 +50
proc_reg_get_unmapped_area 110 107 -3
close_pdeo 227 224 -3
proc_reg_open 289 284 -5
proc_create_data 60 53 -7
rt_cpu_seq_fops 256 - -256
...
default_affinity_proc_fops 256 - -256
Total: Before=5430095, After=5425343, chg -0.09%
Link: http://lkml.kernel.org/r/20191225172228.GA13378@avx2
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/configs.c')
0 files changed, 0 insertions, 0 deletions