diff mbox series

[7/8] s390: mv s390 sysctls into their own file under arch/s390 dir

Message ID 20250218-jag-mv_ctltables-v1-7-cd3698ab8d29@kernel.org (mailing list archive)
State New
Headers show
Series sysctl: Move sysctls from kern_table into their respective subsystems | expand

Commit Message

Joel Granados Feb. 18, 2025, 9:56 a.m. UTC
Move s390 sysctls (spin_retry and userprocess_debug) into their own
files under arch/s390. We create two new sysctl tables
(2390_{fault,spin}_sysctl_table) which will be initialized with
arch_initcall placing them after their original place in proc_root_init.

This is part of a greater effort to move ctl tables into their
respective subsystems which will reduce the merge conflicts in
kerenel/sysctl.c.

Signed-off-by: joel granados <joel.granados@kernel.org>
---
 arch/s390/lib/spinlock.c | 23 +++++++++++++++++++++++
 arch/s390/mm/fault.c     | 17 +++++++++++++++++
 kernel/sysctl.c          | 18 ------------------
 3 files changed, 40 insertions(+), 18 deletions(-)

Comments

Heiko Carstens Feb. 18, 2025, 2:08 p.m. UTC | #1
On Tue, Feb 18, 2025 at 10:56:23AM +0100, joel granados wrote:
> Move s390 sysctls (spin_retry and userprocess_debug) into their own
> files under arch/s390. We create two new sysctl tables
> (2390_{fault,spin}_sysctl_table) which will be initialized with
> arch_initcall placing them after their original place in proc_root_init.
> 
> This is part of a greater effort to move ctl tables into their
> respective subsystems which will reduce the merge conflicts in
> kerenel/sysctl.c.
  ^^^^^^^
typo

> diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c
> index a81a01c44927..4483fdc9d472 100644
> --- a/arch/s390/lib/spinlock.c
> +++ b/arch/s390/lib/spinlock.c
> @@ -17,6 +17,10 @@
>  #include <asm/alternative.h>
>  #include <asm/asm.h>
>  
> +#if defined(CONFIG_SMP)
> +#include <linux/sysctl.h>
> +#endif
> +
...
> +#if defined(CONFIG_SMP)
> +static const struct ctl_table s390_spin_sysctl_table[] = {
> +	{
> +		.procname	= "spin_retry",
> +		.data		= &spin_retry,
> +		.maxlen		= sizeof(int),
> +		.mode		= 0644,
> +		.proc_handler	= proc_dointvec,
> +	},
> +};
> +
> +static int __init init_s390_spin_sysctls(void)
> +{
> +	register_sysctl_init("kernel", s390_spin_sysctl_table);
> +	return 0;
> +}
> +arch_initcall(init_s390_spin_sysctls);
> +#endif

I see that you want to keep the existing CONFIG_SMP behaviour, but since a
long time s390 enforces CONFIG_SMP=y (this was obviously never reflected in
kernel/sysctl.c).
Therefore the above ifdefs should be removed, and in addition the include
statement should be added to the other linux includes at the top of the file.
Joel Granados Feb. 21, 2025, 7:59 a.m. UTC | #2
On Tue, Feb 18, 2025 at 03:08:21PM +0100, Heiko Carstens wrote:
> On Tue, Feb 18, 2025 at 10:56:23AM +0100, joel granados wrote:
> > Move s390 sysctls (spin_retry and userprocess_debug) into their own
> > files under arch/s390. We create two new sysctl tables
> > (2390_{fault,spin}_sysctl_table) which will be initialized with
> > arch_initcall placing them after their original place in proc_root_init.
> > 
> > This is part of a greater effort to move ctl tables into their
> > respective subsystems which will reduce the merge conflicts in
> > kerenel/sysctl.c.
>   ^^^^^^^
> typo
Fixed

> 
> > diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c
> > index a81a01c44927..4483fdc9d472 100644
> > --- a/arch/s390/lib/spinlock.c
> > +++ b/arch/s390/lib/spinlock.c
> > @@ -17,6 +17,10 @@
> >  #include <asm/alternative.h>
> >  #include <asm/asm.h>
> >  
> > +#if defined(CONFIG_SMP)
> > +#include <linux/sysctl.h>
> > +#endif
> > +
> ...
> > +#if defined(CONFIG_SMP)
> > +static const struct ctl_table s390_spin_sysctl_table[] = {
> > +	{
> > +		.procname	= "spin_retry",
> > +		.data		= &spin_retry,
> > +		.maxlen		= sizeof(int),
> > +		.mode		= 0644,
> > +		.proc_handler	= proc_dointvec,
> > +	},
> > +};
> > +
> > +static int __init init_s390_spin_sysctls(void)
> > +{
> > +	register_sysctl_init("kernel", s390_spin_sysctl_table);
> > +	return 0;
> > +}
> > +arch_initcall(init_s390_spin_sysctls);
> > +#endif
> 
> I see that you want to keep the existing CONFIG_SMP behaviour, but since a
> long time s390 enforces CONFIG_SMP=y (this was obviously never reflected in
> kernel/sysctl.c).
> Therefore the above ifdefs should be removed, and in addition the include
> statement should be added to the other linux includes at the top of the file.
I'll add these changes to my V2

Thx for the review
diff mbox series

Patch

diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c
index a81a01c44927..4483fdc9d472 100644
--- a/arch/s390/lib/spinlock.c
+++ b/arch/s390/lib/spinlock.c
@@ -17,6 +17,10 @@ 
 #include <asm/alternative.h>
 #include <asm/asm.h>
 
+#if defined(CONFIG_SMP)
+#include <linux/sysctl.h>
+#endif
+
 int spin_retry = -1;
 
 static int __init spin_retry_init(void)
@@ -37,6 +41,25 @@  static int __init spin_retry_setup(char *str)
 }
 __setup("spin_retry=", spin_retry_setup);
 
+#if defined(CONFIG_SMP)
+static const struct ctl_table s390_spin_sysctl_table[] = {
+	{
+		.procname	= "spin_retry",
+		.data		= &spin_retry,
+		.maxlen		= sizeof(int),
+		.mode		= 0644,
+		.proc_handler	= proc_dointvec,
+	},
+};
+
+static int __init init_s390_spin_sysctls(void)
+{
+	register_sysctl_init("kernel", s390_spin_sysctl_table);
+	return 0;
+}
+arch_initcall(init_s390_spin_sysctls);
+#endif
+
 struct spin_wait {
 	struct spin_wait *next, *prev;
 	int node_id;
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 9b681f74dccc..507da355bf68 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -175,6 +175,23 @@  static void dump_fault_info(struct pt_regs *regs)
 
 int show_unhandled_signals = 1;
 
+static const struct ctl_table s390_fault_sysctl_table[] = {
+	{
+		.procname	= "userprocess_debug",
+		.data		= &show_unhandled_signals,
+		.maxlen		= sizeof(int),
+		.mode		= 0644,
+		.proc_handler	= proc_dointvec,
+	},
+};
+
+static int __init init_s390_fault_sysctls(void)
+{
+	register_sysctl_init("kernel", s390_fault_sysctl_table);
+	return 0;
+}
+arch_initcall(init_s390_fault_sysctls);
+
 void report_user_fault(struct pt_regs *regs, long signr, int is_mm_fault)
 {
 	static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index b63d53e592d8..7f505f9ace87 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1702,15 +1702,6 @@  static const struct ctl_table kern_table[] = {
 		.extra1		= SYSCTL_ZERO,
 		.extra2		= SYSCTL_MAXOLDUID,
 	},
-#ifdef CONFIG_S390
-	{
-		.procname	= "userprocess_debug",
-		.data		= &show_unhandled_signals,
-		.maxlen		= sizeof(int),
-		.mode		= 0644,
-		.proc_handler	= proc_dointvec,
-	},
-#endif
 	{
 		.procname	= "ngroups_max",
 		.data		= (void *)&ngroups_max,
@@ -1791,15 +1782,6 @@  static const struct ctl_table kern_table[] = {
 		.proc_handler	= proc_dointvec,
 	},
 #endif
-#if defined(CONFIG_S390) && defined(CONFIG_SMP)
-	{
-		.procname	= "spin_retry",
-		.data		= &spin_retry,
-		.maxlen		= sizeof (int),
-		.mode		= 0644,
-		.proc_handler	= proc_dointvec,
-	},
-#endif
 #if	defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86)
 	{
 		.procname	= "acpi_video_flags",