]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
kernel/delayacct: move delayacct sysctls to its own file
authortangmeng <tangmeng@uniontech.com>
Fri, 18 Feb 2022 10:59:36 +0000 (18:59 +0800)
committerLuis Chamberlain <mcgrof@kernel.org>
Wed, 6 Apr 2022 20:43:44 +0000 (13:43 -0700)
kernel/sysctl.c is a kitchen sink where everyone leaves their dirty
dishes, this makes it very difficult to maintain.

To help with this maintenance let's start by moving sysctls to places
where they actually belong.  The proc sysctl maintainers do not want to
know what sysctl knobs you wish to add for your own piece of code, we
just care about the core logic.

All filesystem syctls now get reviewed by fs folks. This commit
follows the commit of fs, move the delayacct sysctl to its own file,
kernel/delayacct.c.

Signed-off-by: tangmeng <tangmeng@uniontech.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
include/linux/delayacct.h
kernel/delayacct.c
kernel/sysctl.c

index 3e03d010bd2e3e207f0b59fd3570d4867a56941a..6b16a6930a192e217a801c9ec6bd0b31435e3567 100644 (file)
@@ -61,9 +61,6 @@ extern int delayacct_on;      /* Delay accounting turned on/off */
 extern struct kmem_cache *delayacct_cache;
 extern void delayacct_init(void);
 
-extern int sysctl_delayacct(struct ctl_table *table, int write, void *buffer,
-                           size_t *lenp, loff_t *ppos);
-
 extern void __delayacct_tsk_init(struct task_struct *);
 extern void __delayacct_tsk_exit(struct task_struct *);
 extern void __delayacct_blkio_start(void);
index c5e8cea9e05ff2139ffab2ac6f0e7a178c9f20ce..2c1e18f7c5cffc48a0176cce705d1f948defcf48 100644 (file)
@@ -44,7 +44,7 @@ void delayacct_init(void)
 }
 
 #ifdef CONFIG_PROC_SYSCTL
-int sysctl_delayacct(struct ctl_table *table, int write, void *buffer,
+static int sysctl_delayacct(struct ctl_table *table, int write, void *buffer,
                     size_t *lenp, loff_t *ppos)
 {
        int state = delayacct_on;
@@ -63,6 +63,26 @@ int sysctl_delayacct(struct ctl_table *table, int write, void *buffer,
                set_delayacct(state);
        return err;
 }
+
+static struct ctl_table kern_delayacct_table[] = {
+       {
+               .procname       = "task_delayacct",
+               .data           = NULL,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = sysctl_delayacct,
+               .extra1         = SYSCTL_ZERO,
+               .extra2         = SYSCTL_ONE,
+       },
+       { }
+};
+
+static __init int kernel_delayacct_sysctls_init(void)
+{
+       register_sysctl_init("kernel", kern_delayacct_table);
+       return 0;
+}
+late_initcall(kernel_delayacct_sysctls_init);
 #endif
 
 void __delayacct_tsk_init(struct task_struct *tsk)
index 5421e28dbb2527f35b6fdeebe363acdbae7dacac..9b74ba12a7115b4b0c0780848f8ef63a8720a9a5 100644 (file)
@@ -67,7 +67,6 @@
 #include <linux/userfaultfd_k.h>
 #include <linux/latencytop.h>
 #include <linux/pid.h>
-#include <linux/delayacct.h>
 
 #include "../lib/kstrtox.h"
 
@@ -1651,17 +1650,6 @@ int proc_do_static_key(struct ctl_table *table, int write,
 }
 
 static struct ctl_table kern_table[] = {
-#ifdef CONFIG_TASK_DELAY_ACCT
-       {
-               .procname       = "task_delayacct",
-               .data           = NULL,
-               .maxlen         = sizeof(unsigned int),
-               .mode           = 0644,
-               .proc_handler   = sysctl_delayacct,
-               .extra1         = SYSCTL_ZERO,
-               .extra2         = SYSCTL_ONE,
-       },
-#endif /* CONFIG_TASK_DELAY_ACCT */
 #ifdef CONFIG_NUMA_BALANCING
        {
                .procname       = "numa_balancing",