fs/proc: sysctl: remove register ctl_table end with empty
Sysctls are being moved out of kernel/sysctl.c and out to
their own respective subsystems / users to help with easier
maintance and avoid merge conflicts. But when we move just
one entry and to its own new file the last entry for this
new file must be empty, so we are essentialy bloating the
kernel one extra empty entry per each newly moved sysctl.
To help with this, I have added support for registering just
one ctl_table, therefore not bloating the kernel when we
move a single ctl_table to its own file.
The optimization has been implemented in the previous patch,
here use register_sysctl_single() to register single one
ctl_table.
In this modification, I counted the size changes of each
object file during the compilation process.
When there is no strip, size changes are as follows:
before now save space
fs/dcache.o 904936 904760 176bytes
fs/exec.o 883584 883440 144bytes
fs/namespace.o 1614776 1614616 160bytes
fs/notify/dnotify/dnotify.o 255992 255872 120bytes
init/do_mounts_initrd.o 296552 296392 160bytes
kernel/acct.o 459184 459032 152bytes
kernel/delayacct.o 208680 208536 144bytes
kernel/kprobes.o 794968 794936 32bytes
kernel/panic.o 367696 367560 136bytes
When there is exec with 'strip -d', size changes are as follows:
before now save space
fs/dcache.o 79040 78952 88bytes
fs/exec.o 57960 57864 96bytes
fs/namespace.o 111904 111824 80bytes
fs/notify/dnotify/dnotify.o 8816 8736 80bytes
init/do_mounts_initrd.o 4872 4760 112bytes
kernel/acct.o 18104 18000 104bytes
kernel/delayacct.o 8768 8664 104bytes
kernel/kprobes.o 63192 63104 88bytes
kernel/panic.o 26760 26672 88bytes
Suggested-by: Matthew Wilcox <willy@infradead.org>
Suggested-by: Xiaoming Ni <nixiaoming@huawei.com>
Originally-by: Meng Tang <tangmeng@uniontech.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
9 files changed