[PATCH v5 -next 00/16] sysctl: move sysctls from vm_table into its own files
From: Kaixiong Yu
Date: Sat Jan 11 2025 - 02:12:44 EST
This patch series moves sysctls of vm_table in kernel/sysctl.c to
places where they actually belong, and do some related code clean-ups.
After this patch series, all sysctls in vm_table have been moved into its
own files, meanwhile, delete vm_table.
All the modifications of this patch series base on
linux-next(tags/next-20250110). To test this patch series, the code was
compiled with both the CONFIG_SYSCTL enabled and disabled on arm64 and
x86_64 architectures. After this patch series is applied, all files
under /proc/sys/vm can be read or written normally.
my test steps as below listed:
Step 1: Set CONFIG_SYSCTL to 'n' and compile the Linux kernel on the
arm64 architecture. The kernel compiles successfully without any errors
or warnings.
Step 2: Set CONFIG_SYSCTL to 'y' and compile the Linux kernel on the
arm64 architecture. The kernel compiles successfully without any errors
or warnings.
Step 3: Use QEMU to boot the kernel compiled in Step 2, then use the
Linux command |ls -ll /proc/sys/vm/| to check the permissions of all
sysctls under the |/proc/sys/vm| directory.
When compared with the kernel version that did not apply this series of
patches, there is no difference in the sysctl permissions under the
|/proc/sys/vm| directory between the two kernel versions.
Step 4: Repeat steps 1 to 3 on the x86_64 architecture.
Changes in v5:
- add reviewed-by from Lorenzo Stoakes in patch6,8
- Accept Brian Gerst's suggestion to reduce the preprocessor
condition "#elif (defined(CONFIG_X86_32) && !defined(CONFIG_UML))"
in patch13
- fix the error discovered by Geert Uytterhoeven in patch14 in V4.
Move the call to register_sysctl_init() into its own fs_initcall()
as Geert Uytterhoeven's patch does.
- take the advice of Joel Granados, separating patch14 in V4 into
patch14 and patch15 in V5. patch14 in V5 just moves the vdso_enabled
table. patch15 in V5 removes the vm_table.
- modify the change log of patch14
- clarify test steps.
Changes in v4:
- due to my mistake, the previous version sent 15 patches twice.
Please ignore that, as this version is the correct one.
- change all "static struct ctl_table" type into
"static const struct ctl_table" type in patch1~10,12,13,14
- simplify result of rpcauth_cache_shrink_count() in patch11
Changes in v3:
- change patch1~10, patch14 title suggested by Joel Granados
- change sysctl_stat_interval to static type in patch1
- add acked-by from Paul Moore in patch7
- change dirtytime_expire_interval to static type in patch9
- add acked-by from Anna Schumaker in patch11
Changes in v2:
- fix sysctl_max_map_count undeclared issue in mm/nommu.c for patch6
- update changelog for patch7/12, suggested by Kees/Paul
- fix patch8, sorry for wrong changes and forget to built with NOMMU
- add reviewed-by from Kees except patch8 since patch8 is wrong in v1
- add reviewed-by from Jan Kara, Christian Brauner in patch12
Kaixiong Yu (16):
mm: vmstat: move sysctls to mm/vmstat.c
mm: filemap: move sysctl to mm/filemap.c
mm: swap: move sysctl to mm/swap.c
mm: vmscan: move vmscan sysctls to mm/vmscan.c
mm: util: move sysctls to mm/util.c
mm: mmap: move sysctl to mm/mmap.c
security: min_addr: move sysctl to security/min_addr.c
mm: nommu: move sysctl to mm/nommu.c
fs: fs-writeback: move sysctl to fs/fs-writeback.c
fs: drop_caches: move sysctl to fs/drop_caches.c
sunrpc: simplify rpcauth_cache_shrink_count()
fs: dcache: move the sysctl to fs/dcache.c
x86: vdso: move the sysctl to arch/x86/entry/vdso/vdso32-setup.c
sh: vdso: move the sysctl to arch/sh/kernel/vsyscall/vsyscall.c
sysctl: remove the vm_table
sysctl: remove unneeded include
arch/sh/kernel/vsyscall/vsyscall.c | 20 +++
arch/x86/entry/vdso/vdso32-setup.c | 16 ++-
fs/dcache.c | 21 ++-
fs/drop_caches.c | 23 ++-
fs/fs-writeback.c | 30 ++--
include/linux/dcache.h | 7 +-
include/linux/mm.h | 23 ---
include/linux/mman.h | 2 -
include/linux/swap.h | 9 --
include/linux/vmstat.h | 11 --
include/linux/writeback.h | 4 -
kernel/sysctl.c | 221 -----------------------------
mm/filemap.c | 18 ++-
mm/internal.h | 10 ++
mm/mmap.c | 54 +++++++
mm/nommu.c | 15 +-
mm/swap.c | 16 ++-
mm/swap.h | 1 +
mm/util.c | 67 +++++++--
mm/vmscan.c | 23 +++
mm/vmstat.c | 44 +++++-
net/sunrpc/auth.c | 2 +-
security/min_addr.c | 11 ++
23 files changed, 336 insertions(+), 312 deletions(-)
--
2.34.1