From patchwork Sun Feb 20 06:00:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752558 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 64F7FC433F5 for ; Sun, 20 Feb 2022 06:01:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239784AbiBTGBc (ORCPT ); Sun, 20 Feb 2022 01:01:32 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:47680 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239384AbiBTGBb (ORCPT ); Sun, 20 Feb 2022 01:01:31 -0500 Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70C464E398 for ; Sat, 19 Feb 2022 22:01:10 -0800 (PST) X-QQ-mid: bizesmtp71t1645336814toup6w7g Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:00:06 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: DjV0wquoRWbFbMhTh/aiK/+4vF3oTrbzwjW7Ob/10jesuFazuUecCwYqC5XvK Tew27FVHThUVjkWVIjlh9CMfNPNVjApeRa9kJ4qhIgB6phrxrsryM2LmykVnoTt+cLmFaGB WAjl7CIdfGOHuToR2s7P5x9/JNp5JZEaEOsndqIvOb3VrNyvRFNNU/O4IFPEFf8jeMISz2c 2snBphFkZ4VcxKm7Y8oYt+eWesd9c02oWGMFGv5KckZVuOWfmfGiruJrYHis6fi18zRoPyO 03yhjr6bHBRBM/W1EmFVFL7ZS4zP3eG0AVywskqfz8vKcEnQ1pDL3f0I7F8ka0i2hjPr7je 1aH1sh6 X-QQ-GoodBg: 2 From: tangmeng To: James.Bottomley@HansenPartnership.com, deller@gmx.de, mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com Cc: linux-parisc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, tangmeng Subject: [PATCH 01/11] kernel/parisc: move soft-power sysctl to its own file Date: Sun, 20 Feb 2022 14:00:00 +0800 Message-Id: <20220220060000.13079-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign1 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 soft-power sysctl to its own file, kernel/parisc/power.c. Signed-off-by: tangmeng Reported-by: kernel test robot --- drivers/parisc/power.c | 22 ++++++++++++++++++++++ include/linux/sysctl.h | 1 - kernel/sysctl.c | 9 --------- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/drivers/parisc/power.c b/drivers/parisc/power.c index 456776bd8ee6..24e0ffbe460a 100644 --- a/drivers/parisc/power.c +++ b/drivers/parisc/power.c @@ -193,6 +193,26 @@ static struct notifier_block parisc_panic_block = { .priority = INT_MAX, }; +static int pwrsw_enabled; +#ifdef CONFIG_SYSCTL +static struct ctl_table kern_parisc_power_table[] = { + { + .procname = "soft-power", + .data = &pwrsw_enabled, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec, + }, + { } +}; + +static void __init kernel_parisc_power_sysctls_init(void) +{ + register_sysctl_init("kernel", kern_parisc_power_table); +} +#else +#define kernel_parisc_power_sysctls_init() do { } while (0) +#endif /* CONFIG_SYSCTL */ static int __init power_init(void) { @@ -233,6 +253,8 @@ static int __init power_init(void) atomic_notifier_chain_register(&panic_notifier_list, &parisc_panic_block); + kernel_parisc_power_sysctls_init(); + return 0; } diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 6353d6db69b2..e00bf436d63b 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -242,7 +242,6 @@ int do_proc_douintvec(struct ctl_table *table, int write, int write, void *data), void *data); -extern int pwrsw_enabled; extern int unaligned_enabled; extern int unaligned_dump_stack; extern int no_unaligned_warning; diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 22037f03cd2b..d11390634321 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -1737,15 +1737,6 @@ static struct ctl_table kern_table[] = { .proc_handler = proc_dointvec, }, #endif -#ifdef CONFIG_PARISC - { - .procname = "soft-power", - .data = &pwrsw_enabled, - .maxlen = sizeof (int), - .mode = 0644, - .proc_handler = proc_dointvec, - }, -#endif #ifdef CONFIG_SYSCTL_ARCH_UNALIGN_ALLOW { .procname = "unaligned-trap", From patchwork Sun Feb 20 06:00:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752555 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CB1BEC433F5 for ; Sun, 20 Feb 2022 06:00:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234315AbiBTGBI (ORCPT ); Sun, 20 Feb 2022 01:01:08 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:47338 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234317AbiBTGBH (ORCPT ); Sun, 20 Feb 2022 01:01:07 -0500 Received: from smtpbg153.qq.com (smtpbg153.qq.com [13.245.218.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 817DF4E391 for ; Sat, 19 Feb 2022 22:00:45 -0800 (PST) X-QQ-mid: bizesmtp67t1645336826t02la2ki Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:00:20 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: Mzskoac49OhGvxpJRUZvZbOVIB6zL6XZ5GzlSuFgGhGks3zBTi6Ww2WccQD+E KpQ8suHUKwp2NxsEx6UrQf8MXOkZCxaFdFGoRnMFiiYpSz3vvgSIWLJlLRP8nAYcZYbkXRo 0hs36nv9bzYTodyVIgr7Pb8zxqojhpYv5zn1Nxc18p6dxIEM9ChF2BWfG+XSP3MQXe9szW3 zWoy+4cXt52aEbP9ktUOejwE4UYcZdXSQ9mC9fRsl8fTlQr9LpeBeZnFcFjRHKVaZ8y7PhL L47eFc2IdjfZQoK6I3r5w6SM8BJJuv/CJjfetuIzUNVHdByvMb95OY911UJOtOBUBjOcWxB rLSHGJyC2bPftg/Rk02SnxfAHKzQh19Z52lstfT X-QQ-GoodBg: 2 From: tangmeng To: rostedt@goodmis.org, mingo@redhat.com, mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, tangmeng Subject: [PATCH 02/11] kernel/trace: move stack_tracer_enabled sysctl to its own file Date: Sun, 20 Feb 2022 14:00:17 +0800 Message-Id: <20220220060017.13285-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign2 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 stack_tracer_enabled sysctl to its own file, kernel/trace/trace_stack.c. Signed-off-by: tangmeng Acked-by: Steven Rostedt (Google) --- include/linux/ftrace.h | 6 ------ kernel/sysctl.c | 9 --------- kernel/trace/trace_stack.c | 26 ++++++++++++++++++++++++-- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 9999e29187de..cc6f7532e038 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -392,12 +392,6 @@ static inline void arch_ftrace_set_direct_caller(struct pt_regs *regs, #endif /* CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS */ #ifdef CONFIG_STACK_TRACER - -extern int stack_tracer_enabled; - -int stack_trace_sysctl(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos); - /* DO NOT MODIFY THIS VARIABLE DIRECTLY! */ DECLARE_PER_CPU(int, disable_stack_tracer); diff --git a/kernel/sysctl.c b/kernel/sysctl.c index d11390634321..b41138d64e5e 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -1755,15 +1755,6 @@ static struct ctl_table kern_table[] = { .proc_handler = ftrace_enable_sysctl, }, #endif -#ifdef CONFIG_STACK_TRACER - { - .procname = "stack_tracer_enabled", - .data = &stack_tracer_enabled, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = stack_trace_sysctl, - }, -#endif #ifdef CONFIG_TRACING { .procname = "ftrace_dump_on_oops", diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c index 5a48dba912ea..b871499cf7e6 100644 --- a/kernel/trace/trace_stack.c +++ b/kernel/trace/trace_stack.c @@ -32,7 +32,7 @@ static arch_spinlock_t stack_trace_max_lock = DEFINE_PER_CPU(int, disable_stack_tracer); static DEFINE_MUTEX(stack_sysctl_mutex); -int stack_tracer_enabled; +static int stack_tracer_enabled; static void print_max_stack(void) { @@ -513,7 +513,8 @@ static const struct file_operations stack_trace_filter_fops = { #endif /* CONFIG_DYNAMIC_FTRACE */ -int +#ifdef CONFIG_SYSCTL +static int stack_trace_sysctl(struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -537,6 +538,25 @@ stack_trace_sysctl(struct ctl_table *table, int write, void *buffer, return ret; } +static struct ctl_table kern_trace_stack_table[] = { + { + .procname = "stack_tracer_enabled", + .data = &stack_tracer_enabled, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = stack_trace_sysctl, + }, + { } +}; + +static void __init kernel_trace_stack_sysctls_init(void) +{ + register_sysctl_init("kernel", kern_trace_stack_table); +} +#else +#define kernel_trace_stack_sysctls_init() do { } while (0) +#endif /* CONFIG_SYSCTL */ + static char stack_trace_filter_buf[COMMAND_LINE_SIZE+1] __initdata; static __init int enable_stacktrace(char *str) @@ -576,6 +596,8 @@ static __init int stack_trace_init(void) if (stack_tracer_enabled) register_ftrace_function(&trace_ops); + kernel_trace_stack_sysctls_init(); + return 0; } From patchwork Sun Feb 20 06:00:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752556 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B5252C433EF for ; Sun, 20 Feb 2022 06:00:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234867AbiBTGBQ (ORCPT ); Sun, 20 Feb 2022 01:01:16 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:47482 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234317AbiBTGBP (ORCPT ); Sun, 20 Feb 2022 01:01:15 -0500 Received: from smtpproxy21.qq.com (smtpbg702.qq.com [203.205.195.102]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2DD6D4DF7D for ; Sat, 19 Feb 2022 22:00:55 -0800 (PST) X-QQ-mid: bizesmtp65t1645336839trr4rl57 Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:00:32 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: g3JGK9LspAkdPLuIKUMkLU2nZN/IgIz7rigkD/y4wwHIiZcWPMTYYVxSLLGxT m2KkDvONxPdWZaRrkdzg8vD18jKhE9xShvpP+19sfwC7zrjVXg9o+NYfqei3hpDHKmAq1X2 juzQFknEnVgHMIb34gDebgeuR6TKaygU04SwpM7wv9C1ChyJVuouxnvOwNCIIQWmPojOPGy uhbgMAGz0ceHlux5K39rjlXEMeOpJ+oCUMzIS8UpXGM2qggLnH4M0VPX1RXaTH6vxwlHt9O FEGctFFE0YYB9TRjemd9zwYMNIPO+u7vrje3TZxF4agTTy0DwaVJxlLnMTlEFGBXpOlgfUq ShZbQufJH4gavj5Hc2XHYF2Za1mcg== X-QQ-GoodBg: 2 From: tangmeng To: mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com Cc: linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, tangmeng Subject: [PATCH 03/11] kernel/kmod: move modprobe sysctl to its own file Date: Sun, 20 Feb 2022 14:00:29 +0800 Message-Id: <20220220060029.13434-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign5 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 modprobe sysctl to its own file, kernel/kmod.c. Signed-off-by: tangmeng --- include/linux/kmod.h | 3 --- kernel/kmod.c | 23 ++++++++++++++++++++++- kernel/sysctl.c | 7 ------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/include/linux/kmod.h b/include/linux/kmod.h index 68f69362d427..9a07c3215389 100644 --- a/include/linux/kmod.h +++ b/include/linux/kmod.h @@ -14,10 +14,7 @@ #include #include -#define KMOD_PATH_LEN 256 - #ifdef CONFIG_MODULES -extern char modprobe_path[]; /* for sysctl */ /* modprobe exit status on success, -ve on error. Return value * usually useless though. */ extern __printf(2, 3) diff --git a/kernel/kmod.c b/kernel/kmod.c index b717134ebe17..54df92abb8dd 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c @@ -55,10 +55,31 @@ static DECLARE_WAIT_QUEUE_HEAD(kmod_wq); */ #define MAX_KMOD_ALL_BUSY_TIMEOUT 5 +#define KMOD_PATH_LEN 256 /* modprobe_path is set via /proc/sys. */ -char modprobe_path[KMOD_PATH_LEN] = CONFIG_MODPROBE_PATH; +static char modprobe_path[KMOD_PATH_LEN] = CONFIG_MODPROBE_PATH; + +#ifdef CONFIG_SYSCTL +static struct ctl_table kern_modprobe_table[] = { + { + .procname = "modprobe", + .data = &modprobe_path, + .maxlen = KMOD_PATH_LEN, + .mode = 0644, + .proc_handler = proc_dostring, + }, + { } +}; + +static __init int kernel_modprobe_sysctls_init(void) +{ + register_sysctl_init("kernel", kern_modprobe_table); + return 0; +} +late_initcall(kernel_modprobe_sysctls_init); +#endif /* CONFIG_SYSCTL */ static void free_modprobe_argv(struct subprocess_info *info) { diff --git a/kernel/sysctl.c b/kernel/sysctl.c index b41138d64e5e..126d47e8224d 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -1791,13 +1791,6 @@ static struct ctl_table kern_table[] = { }, #endif #ifdef CONFIG_MODULES - { - .procname = "modprobe", - .data = &modprobe_path, - .maxlen = KMOD_PATH_LEN, - .mode = 0644, - .proc_handler = proc_dostring, - }, { .procname = "modules_disabled", .data = &modules_disabled, From patchwork Sun Feb 20 06:00:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752557 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4FE6AC433EF for ; Sun, 20 Feb 2022 06:01:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239012AbiBTGB2 (ORCPT ); Sun, 20 Feb 2022 01:01:28 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:47590 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236468AbiBTGBW (ORCPT ); Sun, 20 Feb 2022 01:01:22 -0500 Received: from smtpbg516.qq.com (smtpbg516.qq.com [203.205.250.54]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B9594E392 for ; Sat, 19 Feb 2022 22:00:58 -0800 (PST) X-QQ-mid: bizesmtp89t1645336851t7aadi5n Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:00:44 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: F3yR32iATbi/mkLSpOZvYvncsiPLQQBpqaeLowKGG86n/yfoUl7HczKwqnGvv AFWPx+giiUSNc8US0Rbd28oDJVUomiKnOUWitwatSMKDHPGqDMumpZqZfzJDxrovodrq43f 49BMtuG34fiwk4h+xaM2l2UXpZNlYx+xxYY15iIqSNg7oS8tx85P3VefeKbCmUBg1Yhz35Y jlu5+RAb9yexYmgw85jyi8wQp6kUektl441hPSDvSAjdbRv7cL7lZ+Gbgh07RdNx28OApP5 7PLG2Xv9DaK0TQCsJb9FpjEHKvtXYC8q/uvPTU9L4xioHQG5gnPA/F9/bf5zGToG7HTKvhd 6c1+GVUZ1rsBHfwHA5h3YsFnUHZJAOaCODOnT/t X-QQ-GoodBg: 2 From: tangmeng To: mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, tangmeng Subject: [PATCH 04/11] kernel/fork: move threads-max sysctl to its own file Date: Sun, 20 Feb 2022 14:00:41 +0800 Message-Id: <20220220060041.13531-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign5 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 threads-max sysctl to its own file, kernel/fork.c. Signed-off-by: tangmeng --- include/linux/sysctl.h | 3 --- kernel/fork.c | 22 +++++++++++++++++++++- kernel/sysctl.c | 7 ------- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index e00bf436d63b..1d3467b5e2f3 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -295,7 +295,4 @@ static inline void do_sysctl_args(void) } #endif /* CONFIG_SYSCTL */ -int sysctl_max_threads(struct ctl_table *table, int write, void *buffer, - size_t *lenp, loff_t *ppos); - #endif /* _LINUX_SYSCTL_H */ diff --git a/kernel/fork.c b/kernel/fork.c index d75a528f7b21..0ac42feb3f71 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -3143,7 +3143,8 @@ int unshare_files(void) return 0; } -int sysctl_max_threads(struct ctl_table *table, int write, +#ifdef CONFIG_SYSCTL +static int sysctl_max_threads(struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { struct ctl_table t; @@ -3165,3 +3166,22 @@ int sysctl_max_threads(struct ctl_table *table, int write, return 0; } + +static struct ctl_table kern_fork_table[] = { + { + .procname = "threads-max", + .data = NULL, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = sysctl_max_threads, + }, + { } +}; + +static __init int kernel_fork_sysctls_init(void) +{ + register_sysctl_init("kernel", kern_fork_table); + return 0; +} +late_initcall(kernel_fork_sysctls_init); +#endif /* CONFIG_SYSCTL */ diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 126d47e8224d..e6d99bbf9a9d 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -1829,13 +1829,6 @@ static struct ctl_table kern_table[] = { .proc_handler = proc_do_cad_pid, }, #endif - { - .procname = "threads-max", - .data = NULL, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = sysctl_max_threads, - }, { .procname = "usermodehelper", .mode = 0555, From patchwork Sun Feb 20 06:00:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752559 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5DE4BC433F5 for ; Sun, 20 Feb 2022 06:01:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239859AbiBTGBu (ORCPT ); Sun, 20 Feb 2022 01:01:50 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:48110 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239868AbiBTGBr (ORCPT ); Sun, 20 Feb 2022 01:01:47 -0500 Received: from smtpbg151.qq.com (smtpbg151.qq.com [18.169.211.239]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AAA524E391 for ; Sat, 19 Feb 2022 22:01:25 -0800 (PST) X-QQ-mid: bizesmtp82t1645336866t5uc6nr6 Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:00:59 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: X+oTZzR2YPgLP2/i7yIbDL5tLF5aCxs9hfHc/ADu78N1w7TWGQCEuREZ3QnOd lvWEQkz9Bvyp1My9hZTgnhuRnXRx+DJjk019R6yAXzIQ/jJhHBT2xqqRgZ5PlPIH1MUBuq3 5Zq1dwnXK4HlJEIFkVskAK8MyvL5d8S0q6sFrxaNSg536XImV5mOT1G7LlgTlaxV7Oj2uyB aT5T7HGmEXVyT3aLa8v/wbITINlJTO+S00KC2phEyV3EDIQAr7OCRy3Qs8L812G1PdxSwJr EV0Mf1fRrU4jVBb2qFG9DrAE7U168SZHN1Z/kJGbY3I+9mtwWo66tpnBWpk9IVPUCBio03f peI8bQZ4T3rVWjd42GDStccyEy5XKxksLjKw39v X-QQ-GoodBg: 2 From: tangmeng To: mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, tangmeng Subject: [PATCH 05/11] kernel/acpi: move acpi_video_flags sysctl to its own file Date: Sun, 20 Feb 2022 14:00:53 +0800 Message-Id: <20220220060053.13647-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign1 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 acpi_video_flags sysctl to its own file, arch/x86/kernel/acpi/sleep.c. Signed-off-by: tangmeng Acked-by: Rafael J. Wysocki --- arch/x86/kernel/acpi/sleep.c | 21 ++++++++++++++++++++- include/linux/acpi.h | 1 - kernel/sysctl.c | 9 --------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c index 1e97f944b47d..256f3c065605 100644 --- a/arch/x86/kernel/acpi/sleep.c +++ b/arch/x86/kernel/acpi/sleep.c @@ -20,7 +20,26 @@ #include "../../realmode/rm/wakeup.h" #include "sleep.h" -unsigned long acpi_realmode_flags; +static unsigned long acpi_realmode_flags; +#ifdef CONFIG_SYSCTL +static struct ctl_table kern_acpi_table[] = { + { + .procname = "acpi_video_flags", + .data = &acpi_realmode_flags, + .maxlen = sizeof(unsigned long), + .mode = 0644, + .proc_handler = proc_doulongvec_minmax, + }, + { } +}; + +static __init int kernel_acpi_sysctls_init(void) +{ + register_sysctl_init("kernel", kern_acpi_table); + return 0; +} +late_initcall(kernel_acpi_sysctls_init); +#endif /* CONFIG_SYSCTL */ #if defined(CONFIG_SMP) && defined(CONFIG_64BIT) static char temp_stack[4096]; diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 6274758648e3..4f1d9cf579f5 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -349,7 +349,6 @@ static inline bool acpi_sci_irq_valid(void) } extern int sbf_port; -extern unsigned long acpi_realmode_flags; int acpi_register_gsi (struct device *dev, u32 gsi, int triggering, int polarity); int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); diff --git a/kernel/sysctl.c b/kernel/sysctl.c index e6d99bbf9a9d..62499e3207aa 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -1973,15 +1973,6 @@ static struct ctl_table kern_table[] = { .proc_handler = proc_dointvec, }, #endif -#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86) - { - .procname = "acpi_video_flags", - .data = &acpi_realmode_flags, - .maxlen = sizeof (unsigned long), - .mode = 0644, - .proc_handler = proc_doulongvec_minmax, - }, -#endif #ifdef CONFIG_SYSCTL_ARCH_UNALIGN_NO_WARN { .procname = "ignore-unaligned-usertrap", From patchwork Sun Feb 20 06:01:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752560 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A0A5EC433F5 for ; Sun, 20 Feb 2022 06:01:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240724AbiBTGCD (ORCPT ); Sun, 20 Feb 2022 01:02:03 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:48642 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239843AbiBTGCC (ORCPT ); Sun, 20 Feb 2022 01:02:02 -0500 Received: from smtpbg156.qq.com (smtpbg156.qq.com [15.184.82.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E67A227F for ; Sat, 19 Feb 2022 22:01:39 -0800 (PST) X-QQ-mid: bizesmtp82t1645336882t5dgk557 Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:01:16 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: zD6y7hNAcUDOz2spGL/eUKdvHQFW318WJmvVp1I5o3JA883k/G16UFiqIcHw4 PBZ45w9nlRbhLwZwLDc91e8FdhgMGUn61raT5T9pXHP1bIUcBLW/oW3bXuXhP3ZhHBBbw4l sdn+5SZ7+S6rIzzBNhT4bOxGaUOTTxQn3REmqbN6PWYflwJz2iSsrIZZ5XNQlNYtQcdLZFO nhDonfnvqbgU1bSTmKhWJ6kaJtkFZmLR/YAC7aoB21xhpZbyStZK7UL4WM3y8VYc+u23GH8 X578cnMVz9F37uklWZb+CU0sgSVjRtn/OnhTJwN3HFkVWOGFIUONEBk2H/5we+6FkMvqlHs f+FSmlATG7vdRv5ELgUXlO5onmn9p+WlGxBF21p X-QQ-GoodBg: 2 From: tangmeng To: mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, tangmeng Subject: [PATCH 06/11] mm/vmstat: move vmstat sysctls to its own file Date: Sun, 20 Feb 2022 14:01:10 +0800 Message-Id: <20220220060110.13770-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign6 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 vmstat sysctls to its own file, mm/vmstat.c. vmstat_refresh is defined when CONFIG_PROC_FS is defined, so macro control is added to stat_refresh. Signed-off-by: tangmeng --- include/linux/vmstat.h | 9 -------- kernel/sysctl.c | 25 --------------------- mm/vmstat.c | 50 ++++++++++++++++++++++++++++++++++++++---- 3 files changed, 46 insertions(+), 38 deletions(-) diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index bfe38869498d..b615d8d7c1d2 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -10,15 +10,10 @@ #include #include -extern int sysctl_stat_interval; - #ifdef CONFIG_NUMA #define ENABLE_NUMA_STAT 1 #define DISABLE_NUMA_STAT 0 -extern int sysctl_vm_numa_stat; DECLARE_STATIC_KEY_TRUE(vm_numa_stat_key); -int sysctl_vm_numa_stat_handler(struct ctl_table *table, int write, - void *buffer, size_t *length, loff_t *ppos); #endif struct reclaim_stat { @@ -300,10 +295,6 @@ void quiet_vmstat(void); void cpu_vm_stats_fold(int cpu); void refresh_zone_stat_thresholds(void); -struct ctl_table; -int vmstat_refresh(struct ctl_table *, int write, void *buffer, size_t *lenp, - loff_t *ppos); - void drain_zonestat(struct zone *zone, struct per_cpu_zonestat *); int calculate_pressure_threshold(struct zone *zone); diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 62499e3207aa..31f2c6e21392 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -2192,15 +2192,6 @@ static struct ctl_table vm_table[] = { .mode = 0644, .proc_handler = &hugetlb_mempolicy_sysctl_handler, }, - { - .procname = "numa_stat", - .data = &sysctl_vm_numa_stat, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = sysctl_vm_numa_stat_handler, - .extra1 = SYSCTL_ZERO, - .extra2 = SYSCTL_ONE, - }, #endif { .procname = "hugetlb_shm_group", @@ -2377,22 +2368,6 @@ static struct ctl_table vm_table[] = { .extra2 = SYSCTL_ONE_HUNDRED, }, #endif -#ifdef CONFIG_SMP - { - .procname = "stat_interval", - .data = &sysctl_stat_interval, - .maxlen = sizeof(sysctl_stat_interval), - .mode = 0644, - .proc_handler = proc_dointvec_jiffies, - }, - { - .procname = "stat_refresh", - .data = NULL, - .maxlen = 0, - .mode = 0600, - .proc_handler = vmstat_refresh, - }, -#endif #ifdef CONFIG_MMU { .procname = "mmap_min_addr", diff --git a/mm/vmstat.c b/mm/vmstat.c index 4057372745d0..e7eeba4db2eb 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -32,7 +32,7 @@ #include "internal.h" #ifdef CONFIG_NUMA -int sysctl_vm_numa_stat = ENABLE_NUMA_STAT; +static int sysctl_vm_numa_stat = ENABLE_NUMA_STAT; /* zero numa counters within a zone */ static void zero_zone_numa_counters(struct zone *zone) @@ -74,7 +74,7 @@ static void invalid_numa_statistics(void) static DEFINE_MUTEX(vm_numa_stat_lock); -int sysctl_vm_numa_stat_handler(struct ctl_table *table, int write, +static int sysctl_vm_numa_stat_handler(struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { int ret, oldval; @@ -1853,7 +1853,7 @@ static const struct seq_operations vmstat_op = { #ifdef CONFIG_SMP static DEFINE_PER_CPU(struct delayed_work, vmstat_work); -int sysctl_stat_interval __read_mostly = HZ; +static int sysctl_stat_interval __read_mostly = HZ; #ifdef CONFIG_PROC_FS static void refresh_vm_stats(struct work_struct *work) @@ -1861,7 +1861,7 @@ static void refresh_vm_stats(struct work_struct *work) refresh_cpu_vm_stats(true); } -int vmstat_refresh(struct ctl_table *table, int write, +static int vmstat_refresh(struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { long val; @@ -2238,3 +2238,45 @@ static int __init extfrag_debug_init(void) module_init(extfrag_debug_init); #endif + +#ifdef CONFIG_SYSCTL +static struct ctl_table vm_stat_table[] = { +#ifdef CONFIG_NUMA + { + .procname = "numa_stat", + .data = &sysctl_vm_numa_stat, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = sysctl_vm_numa_stat_handler, + .extra1 = SYSCTL_ZERO, + .extra2 = SYSCTL_ONE, + }, +#endif /* CONFIG_NUMA */ +#ifdef CONFIG_SMP + { + .procname = "stat_interval", + .data = &sysctl_stat_interval, + .maxlen = sizeof(sysctl_stat_interval), + .mode = 0644, + .proc_handler = proc_dointvec_jiffies, + }, +#ifdef CONFIG_PROC_FS + { + .procname = "stat_refresh", + .data = NULL, + .maxlen = 0, + .mode = 0600, + .proc_handler = vmstat_refresh, + }, +#endif /* CONFIG_PROC_FS */ +#endif /* CONFIG_SMP */ + { } +}; + +static __init int vm_stat_sysctls_init(void) +{ + register_sysctl_init("vm", vm_stat_table); + return 0; +} +late_initcall(vm_stat_sysctls_init); +#endif /* CONFIG_SYSCTL */ From patchwork Sun Feb 20 06:01:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752561 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71E77C433EF for ; Sun, 20 Feb 2022 06:02:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241698AbiBTGCV (ORCPT ); Sun, 20 Feb 2022 01:02:21 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:49496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241710AbiBTGCU (ORCPT ); Sun, 20 Feb 2022 01:02:20 -0500 X-Greylist: delayed 154954 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sat, 19 Feb 2022 22:01:58 PST Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BA76F63 for ; Sat, 19 Feb 2022 22:01:56 -0800 (PST) X-QQ-mid: bizesmtp76t1645336893tmnmssis Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:01:27 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: HoyAXBWgsklMLx45Q65e9S1zIxrVT15UuJ2vKorwsFn98tS8WzQL3Ja3N5+YS uCEmB4z3YaBlyXfs4A1mikfBwd4xOHC+I7wNiSQtrEAvnG9MKqTP3NKRXIsoOaX1M4MQfzW CvP58Tlf4BfpiNkohfbUrnJMD8E1M/5aJRCWoTSIr1/QiPtivA/HtsXJxOlZPVrJ2/2g0gq ctA3erE5waMiZGa5L0gvdl2GFjZExQl0GKnzkqDD992KrR5pD0vYy//uzIiMcASfSlAjXNR uiGdDMgCdckwUm5d/hdmGlveNxGlZOomroS5Z8HpQwQOvlM/hmQocQ+4n0zolqJM12bscP8 o/f2wU1j6Cy8WRV/UBI9VFWCpuKqI+BGFHv5DGA X-QQ-GoodBg: 2 From: tangmeng To: mike.kravetz@oracle.com, mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, tangmeng Subject: [PATCH 07/11] fs/hugetlbfs: move hugetlibfs sysctls to its own file Date: Sun, 20 Feb 2022 14:01:25 +0800 Message-Id: <20220220060125.13904-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign1 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 hugetlbfs sysctls to its own file, fs/hugetlbfs/inode.c. Signed-off-by: tangmeng --- fs/hugetlbfs/inode.c | 21 ++++++++++++++++++++- include/linux/hugetlb.h | 1 - kernel/sysctl.c | 7 ------- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index a7c6c7498be0..3f386d9d8ad3 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c @@ -62,7 +62,26 @@ struct hugetlbfs_fs_context { umode_t mode; }; -int sysctl_hugetlb_shm_group; +static int sysctl_hugetlb_shm_group; +#if defined(CONFIG_HUGETLB_PAGE) && defined(CONFIG_SYSCTL) +static struct ctl_table vm_hugetlbfs_table[] = { + { + .procname = "hugetlb_shm_group", + .data = &sysctl_hugetlb_shm_group, + .maxlen = sizeof(gid_t), + .mode = 0644, + .proc_handler = proc_dointvec, + }, + { } +}; + +static __init int vm_hugetlbfs_sysctls_init(void) +{ + register_sysctl_init("vm", vm_hugetlbfs_table); + return 0; +} +late_initcall(vm_hugetlbfs_sysctls_init); +#endif enum hugetlb_param { Opt_gid, diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index d1897a69c540..f307e1963851 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -181,7 +181,6 @@ pte_t *huge_pmd_share(struct mm_struct *mm, struct vm_area_struct *vma, struct address_space *hugetlb_page_mapping_lock_write(struct page *hpage); -extern int sysctl_hugetlb_shm_group; extern struct list_head huge_boot_pages; /* arch callbacks */ diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 31f2c6e21392..dc5e313c9e6b 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -2193,13 +2193,6 @@ static struct ctl_table vm_table[] = { .proc_handler = &hugetlb_mempolicy_sysctl_handler, }, #endif - { - .procname = "hugetlb_shm_group", - .data = &sysctl_hugetlb_shm_group, - .maxlen = sizeof(gid_t), - .mode = 0644, - .proc_handler = proc_dointvec, - }, { .procname = "nr_overcommit_hugepages", .data = NULL, From patchwork Sun Feb 20 06:01:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752562 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9B940C433F5 for ; Sun, 20 Feb 2022 06:02:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242121AbiBTGC2 (ORCPT ); Sun, 20 Feb 2022 01:02:28 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:49718 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241890AbiBTGCX (ORCPT ); Sun, 20 Feb 2022 01:02:23 -0500 Received: from smtpproxy21.qq.com (smtpbg702.qq.com [203.205.195.102]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B4F22F1B for ; Sat, 19 Feb 2022 22:02:02 -0800 (PST) X-QQ-mid: bizesmtp79t1645336906taxdyayp Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:01:40 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: F3yR32iATbgAptDoI3vmu8Pc5GgqoUhffNL6Adxaif3ZyUAw/CPtH+G9srbBJ w9hjWWP8XIyr1+M+HNwMJYFh0vBx/e58dqRnDdtWoEmYGz93YRrJpmqqg8rO6ODwNGYgQLo k27/YHfZ963q4G4gUn5SpB7Ngo/i3arw6Cgm9PSIFvPjHimr+rkhn8ARu/fMKBjJHJQVCqs ONnGnrfcOO40PxF1Ip83my/8cz01L9L/mdH4jHdfEQudKDBRDJL0QmxJT3xWjZGQJ7XyZ5I dBmdRt9Ul/ZpxzksMqdFEu/0/WegvObicpc3+dn7Cp5UY5Vb8GzQbH2sTLJKFBmLXFlsjd8 rTBAaWFrQg9lky10nKQVvbQbxA6qfLGsssylv/wQK7mkHquf0A= X-QQ-GoodBg: 2 From: tangmeng To: mike.kravetz@oracle.com, akpm@linux-foundation.org, mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, tangmeng Subject: [PATCH 08/11] mm/hugetlb: move hugetlib sysctls to its own file Date: Sun, 20 Feb 2022 14:01:36 +0800 Message-Id: <20220220060136.14001-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign1 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 hugetlb sysctls to its own file, mm/hugetlb.c. 'hugetlb_treat_movable_handler' is not currently used, so only delete it from the linux/hugetlb.h. Signed-off-by: tangmeng --- include/linux/hugetlb.h | 8 -------- kernel/sysctl.c | 26 ------------------------ mm/hugetlb.c | 44 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 41 insertions(+), 37 deletions(-) diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index f307e1963851..bf807418828a 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -13,7 +13,6 @@ #include #include -struct ctl_table; struct user_struct; struct mmu_gather; @@ -125,13 +124,6 @@ void hugepage_put_subpool(struct hugepage_subpool *spool); void reset_vma_resv_huge_pages(struct vm_area_struct *vma); void clear_vma_resv_huge_pages(struct vm_area_struct *vma); -int hugetlb_sysctl_handler(struct ctl_table *, int, void *, size_t *, loff_t *); -int hugetlb_overcommit_handler(struct ctl_table *, int, void *, size_t *, - loff_t *); -int hugetlb_treat_movable_handler(struct ctl_table *, int, void *, size_t *, - loff_t *); -int hugetlb_mempolicy_sysctl_handler(struct ctl_table *, int, void *, size_t *, - loff_t *); int move_hugetlb_page_tables(struct vm_area_struct *vma, struct vm_area_struct *new_vma, diff --git a/kernel/sysctl.c b/kernel/sysctl.c index dc5e313c9e6b..1a1504862f4f 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -43,7 +43,6 @@ #include #include #include -#include #include #include #include @@ -2176,31 +2175,6 @@ static struct ctl_table vm_table[] = { .extra1 = SYSCTL_ZERO, .extra2 = SYSCTL_TWO_HUNDRED, }, -#ifdef CONFIG_HUGETLB_PAGE - { - .procname = "nr_hugepages", - .data = NULL, - .maxlen = sizeof(unsigned long), - .mode = 0644, - .proc_handler = hugetlb_sysctl_handler, - }, -#ifdef CONFIG_NUMA - { - .procname = "nr_hugepages_mempolicy", - .data = NULL, - .maxlen = sizeof(unsigned long), - .mode = 0644, - .proc_handler = &hugetlb_mempolicy_sysctl_handler, - }, -#endif - { - .procname = "nr_overcommit_hugepages", - .data = NULL, - .maxlen = sizeof(unsigned long), - .mode = 0644, - .proc_handler = hugetlb_overcommit_handler, - }, -#endif { .procname = "lowmem_reserve_ratio", .data = &sysctl_lowmem_reserve_ratio, diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 61895cc01d09..2b1da0c0871b 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4359,7 +4359,7 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy, return ret; } -int hugetlb_sysctl_handler(struct ctl_table *table, int write, +static int hugetlb_sysctl_handler(struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { @@ -4368,7 +4368,7 @@ int hugetlb_sysctl_handler(struct ctl_table *table, int write, } #ifdef CONFIG_NUMA -int hugetlb_mempolicy_sysctl_handler(struct ctl_table *table, int write, +static int hugetlb_mempolicy_sysctl_handler(struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { return hugetlb_sysctl_handler_common(true, table, write, @@ -4376,7 +4376,7 @@ int hugetlb_mempolicy_sysctl_handler(struct ctl_table *table, int write, } #endif /* CONFIG_NUMA */ -int hugetlb_overcommit_handler(struct ctl_table *table, int write, +static int hugetlb_overcommit_handler(struct ctl_table *table, int write, void *buffer, size_t *length, loff_t *ppos) { struct hstate *h = &default_hstate; @@ -7028,3 +7028,41 @@ void __init hugetlb_cma_check(void) } #endif /* CONFIG_CMA */ + +#ifdef CONFIG_SYSCTL +static struct ctl_table vm_mm_hugetlb_table[] = { +#ifdef CONFIG_HUGETLB_PAGE + { + .procname = "nr_hugepages", + .data = NULL, + .maxlen = sizeof(unsigned long), + .mode = 0644, + .proc_handler = hugetlb_sysctl_handler, + }, +#ifdef CONFIG_NUMA + { + .procname = "nr_hugepages_mempolicy", + .data = NULL, + .maxlen = sizeof(unsigned long), + .mode = 0644, + .proc_handler = &hugetlb_mempolicy_sysctl_handler, + }, +#endif + { + .procname = "nr_overcommit_hugepages", + .data = NULL, + .maxlen = sizeof(unsigned long), + .mode = 0644, + .proc_handler = hugetlb_overcommit_handler, + }, +#endif + { } +}; + +static __init int vm_mm_hugetlb_sysctls_init(void) +{ + register_sysctl_init("vm", vm_mm_hugetlb_table); + return 0; +} +late_initcall(vm_mm_hugetlb_sysctls_init); +#endif From patchwork Sun Feb 20 06:01:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752564 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D65F5C433FE for ; Sun, 20 Feb 2022 06:02:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243315AbiBTGCq (ORCPT ); Sun, 20 Feb 2022 01:02:46 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:50942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243381AbiBTGCn (ORCPT ); Sun, 20 Feb 2022 01:02:43 -0500 X-Greylist: delayed 74 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sat, 19 Feb 2022 22:02:19 PST Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5179AF1B for ; Sat, 19 Feb 2022 22:02:18 -0800 (PST) X-QQ-mid: bizesmtp83t1645336917tfkame2n Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:01:51 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: 4LFlwc+MlXkQ8gqbBA0q6azNy4FS1Wp5//1Uq4m3wJCqupGWBCLm4SAGWY39E d+iIj+Wv2qwxluAPiItIHm2vHTu9tlW2cYh9/+NYMgheyjVewkcP5Ia8AQ6oKZPoBm8OCrn XGx+2RzTo0DYxdemrR2ynLPwTWRgT3E7ZwgvFoZUzkT8uKT5sm61ndzj4FVNF4ww1PlRxeW XjKH4OQRKd4bh6wTqC4MwRkMZOSBpycSD7ou4QzwsFSgPnPPgF43ILh/iij7P5hxrgiDKsG VfSYnxCDrK3098yCmiAhwujlQx8XSn2FdMIYs2o2auaA91PQr7gofumlnImAAAXWDShmI6n b3S9MB2w68SHzCsrEQ4wPaebW5diY714Dx+mjye X-QQ-GoodBg: 2 From: tangmeng To: akpm@linux-foundation.org, mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, tangmeng Subject: [PATCH 09/11] mm/filemap: move filemap sysctls to its own file Date: Sun, 20 Feb 2022 14:01:49 +0800 Message-Id: <20220220060149.14110-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign1 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 filemap sysctls to its own file, mm/filemap.c. Signed-off-by: tangmeng --- include/linux/mm.h | 2 -- kernel/sysctl.c | 8 -------- mm/filemap.c | 24 +++++++++++++++++++++++- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 213cc569b192..c3c7cb58c847 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -39,8 +39,6 @@ struct anon_vma_chain; struct user_struct; struct pt_regs; -extern int sysctl_page_lock_unfairness; - void init_mm_internals(void); #ifndef CONFIG_NUMA /* Don't use mapnrs, do it properly */ diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 1a1504862f4f..b51b0b92fdc1 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -2261,14 +2261,6 @@ static struct ctl_table vm_table[] = { .proc_handler = percpu_pagelist_high_fraction_sysctl_handler, .extra1 = SYSCTL_ZERO, }, - { - .procname = "page_lock_unfairness", - .data = &sysctl_page_lock_unfairness, - .maxlen = sizeof(sysctl_page_lock_unfairness), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = SYSCTL_ZERO, - }, #ifdef CONFIG_MMU { .procname = "max_map_count", diff --git a/mm/filemap.c b/mm/filemap.c index ad8c39d90bf9..f264e7e12f59 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1235,7 +1235,29 @@ static inline bool folio_trylock_flag(struct folio *folio, int bit_nr, } /* How many times do we accept lock stealing from under a waiter? */ -int sysctl_page_lock_unfairness = 5; +static int sysctl_page_lock_unfairness = 5; + +#ifdef CONFIG_SYSCTL +static struct ctl_table vm_filemap_table[] = { + { + + .procname = "page_lock_unfairness", + .data = &sysctl_page_lock_unfairness, + .maxlen = sizeof(sysctl_page_lock_unfairness), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = SYSCTL_ZERO, + }, + { } +}; + +static __init int vm_filemap_sysctls_init(void) +{ + register_sysctl_init("vm", vm_filemap_table); + return 0; +} +late_initcall(vm_filemap_sysctls_init); +#endif /* CONFIG_SYSCTL */ static inline int folio_wait_bit_common(struct folio *folio, int bit_nr, int state, enum behavior behavior) From patchwork Sun Feb 20 06:02:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Meng Tang X-Patchwork-Id: 12752563 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 479AFC433EF for ; Sun, 20 Feb 2022 06:02:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243252AbiBTGCo (ORCPT ); Sun, 20 Feb 2022 01:02:44 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:50882 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242920AbiBTGCm (ORCPT ); Sun, 20 Feb 2022 01:02:42 -0500 X-Greylist: delayed 154965 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Sat, 19 Feb 2022 22:02:18 PST Received: from smtpbg506.qq.com (smtpbg506.qq.com [203.205.250.33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9AB9EF15 for ; Sat, 19 Feb 2022 22:02:18 -0800 (PST) X-QQ-mid: bizesmtp84t1645336928t0ofvhkx Received: from localhost.localdomain (unknown [180.102.102.45]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 20 Feb 2022 14:02:02 +0800 (CST) X-QQ-SSF: 01400000002000B0F000B00A0000000 X-QQ-FEAT: kG8stifNu8WQBk7A83W6qIcMVm8Uzj/tIiyGnpzPr0BaZqh144QpaVH6xBmhJ 7j2rDZ7XAii72Gwg1slHxFTYdOvGB+Nvw2vRAbIqHvJvII+KfGE03Un+Vd7e9ha0RqSVReK y7PnyOWuHlgPWVaTrMO+Hj5VGSzEE+Em+Y+IXjAsKOidPXfPBsSBxwaDfOMqZA56FJpCiLI hNxpbQMfYMWP5U54mCKyuivSWBc+Mj9jArgx7TyL9vlew0wA7UTQfkRBhBTh86bbCmelyPq 3iTMmr+Le1k0xxWhWx/djkks4lfWI900u3znx8zkz9PpgaQMXyykYfLvnR0bN/CZkAbZjAO 2U83kRirBqx5ReTBebJK6AJM6vXerZsN1oLNqHB X-QQ-GoodBg: 2 From: tangmeng To: viro@zeniv.linux.org.uk, mcgrof@kernel.org, keescook@chromium.org, yzaikin@google.com Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, nizhen@uniontech.com, zhanglianjie@uniontech.com, nixiaoming@huawei.com, tangmeng Subject: [PATCH 11/11] fs/userfaultfd: move userfaultfd sysctls to its own file Date: Sun, 20 Feb 2022 14:02:00 +0800 Message-Id: <20220220060200.14205-1-tangmeng@uniontech.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:uniontech.com:qybgforeign:qybgforeign2 X-QQ-Bgrelay: 1 Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org 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 userfaultfd sysctls to its own file, fs/userfdfault.c. Signed-off-by: tangmeng --- fs/userfaultfd.c | 23 ++++++++++++++++++++++- include/linux/userfaultfd_k.h | 2 -- kernel/sysctl.c | 11 ----------- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index e26b10132d47..796d828dd2bb 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -30,7 +30,28 @@ #include #include -int sysctl_unprivileged_userfaultfd __read_mostly; +static int sysctl_unprivileged_userfaultfd __read_mostly; +#ifdef CONFIG_SYSCTL +static struct ctl_table vm_userfaultfd_table[] = { + { + .procname = "unprivileged_userfaultfd", + .data = &sysctl_unprivileged_userfaultfd, + .maxlen = sizeof(sysctl_unprivileged_userfaultfd), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = SYSCTL_ZERO, + .extra2 = SYSCTL_ONE, + }, + { } +}; + +static __init int vm_userfaultfd_sysctls_init(void) +{ + register_sysctl_init("vm", vm_userfaultfd_table); + return 0; +} +late_initcall(vm_userfaultfd_sysctls_init); +#endif /* CONFIG_SYSCTL */ static struct kmem_cache *userfaultfd_ctx_cachep __read_mostly; diff --git a/include/linux/userfaultfd_k.h b/include/linux/userfaultfd_k.h index 33cea484d1ad..0ece3026203f 100644 --- a/include/linux/userfaultfd_k.h +++ b/include/linux/userfaultfd_k.h @@ -33,8 +33,6 @@ #define UFFD_SHARED_FCNTL_FLAGS (O_CLOEXEC | O_NONBLOCK) #define UFFD_FLAGS_SET (EFD_SHARED_FCNTL_FLAGS) -extern int sysctl_unprivileged_userfaultfd; - extern vm_fault_t handle_userfault(struct vm_fault *vmf, unsigned long reason); /* diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 657b7bfe38f6..bc74f2bdaa52 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -2407,17 +2407,6 @@ static struct ctl_table vm_table[] = { .extra1 = (void *)&mmap_rnd_compat_bits_min, .extra2 = (void *)&mmap_rnd_compat_bits_max, }, -#endif -#ifdef CONFIG_USERFAULTFD - { - .procname = "unprivileged_userfaultfd", - .data = &sysctl_unprivileged_userfaultfd, - .maxlen = sizeof(sysctl_unprivileged_userfaultfd), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = SYSCTL_ZERO, - .extra2 = SYSCTL_ONE, - }, #endif { } };