2022-02-15 12:44:35

by Zhen Ni

[permalink] [raw]
Subject: [PATCH v3 0/8] sched: Move a series of sysctls starting with sys/kernel/sched_*

move a series of sysctls starting with sys/kernel/sched_* and use the
new register_sysctl_init() to register the sysctl interface.

Zhen Ni (8):
sched: Move child_runs_first sysctls to fair.c
sched: Move schedstats sysctls to core.c
sched: Move rt_period/runtime sysctls to rt.c
sched: Move deadline_period sysctls to deadline.c
sched: Move rr_timeslice sysctls to rt.c
sched: Move uclamp_util sysctls to core.c
sched: Move cfs_bandwidth_slice sysctls to fair.c
sched: Move energy_aware sysctls to topology.c

include/linux/sched/sysctl.h | 41 ---------------
kernel/rcu/rcu.h | 2 +
kernel/sched/core.c | 69 ++++++++++++++++++-------
kernel/sched/deadline.c | 42 +++++++++++++---
kernel/sched/fair.c | 32 +++++++++++-
kernel/sched/rt.c | 56 +++++++++++++++++++--
kernel/sched/sched.h | 7 +++
kernel/sched/topology.c | 25 +++++++++-
kernel/sysctl.c | 97 ------------------------------------
9 files changed, 201 insertions(+), 170 deletions(-)

--
2.20.1




2022-02-15 12:46:00

by Zhen Ni

[permalink] [raw]
Subject: [PATCH v3 1/8] sched: Move child_runs_first sysctls to fair.c

move child_runs_first sysctls to fair.c and use the new
register_sysctl_init() to register the sysctl interface.

Signed-off-by: Zhen Ni <[email protected]>
---
include/linux/sched/sysctl.h | 2 --
kernel/sched/fair.c | 19 +++++++++++++++++++
kernel/sched/sched.h | 2 ++
kernel/sysctl.c | 7 -------
4 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
index 3f2b70f8d32c..5490ba24783a 100644
--- a/include/linux/sched/sysctl.h
+++ b/include/linux/sched/sysctl.h
@@ -14,8 +14,6 @@ extern unsigned long sysctl_hung_task_timeout_secs;
enum { sysctl_hung_task_timeout_secs = 0 };
#endif

-extern unsigned int sysctl_sched_child_runs_first;
-
enum sched_tunable_scaling {
SCHED_TUNABLESCALING_NONE,
SCHED_TUNABLESCALING_LOG,
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 8fc35fd779f8..4ac1bfe8ca4f 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -77,6 +77,25 @@ static unsigned int sched_nr_latency = 8;
* parent will (try to) run first.
*/
unsigned int sysctl_sched_child_runs_first __read_mostly;
+#ifdef CONFIG_SYSCTL
+static struct ctl_table sched_child_runs_first_sysctls[] = {
+ {
+ .procname = "sched_child_runs_first",
+ .data = &sysctl_sched_child_runs_first,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = proc_dointvec,
+ },
+ {}
+};
+
+static int __init sched_child_runs_first_sysctl_init(void)
+{
+ register_sysctl_init("kernel", sched_child_runs_first_sysctls);
+ return 0;
+}
+late_initcall(sched_child_runs_first_sysctl_init);
+#endif

/*
* SCHED_OTHER wake-up granularity.
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 9b33ba9c3c42..27465635c774 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -96,6 +96,8 @@ extern __read_mostly int scheduler_running;
extern unsigned long calc_load_update;
extern atomic_long_t calc_load_tasks;

+extern unsigned int sysctl_sched_child_runs_first;
+
extern void calc_global_load_tick(struct rq *this_rq);
extern long calc_load_fold_active(struct rq *this_rq, long adjust);

diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 1cb7ca68cd4e..24a99b5b7da8 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1652,13 +1652,6 @@ int proc_do_static_key(struct ctl_table *table, int write,
}

static struct ctl_table kern_table[] = {
- {
- .procname = "sched_child_runs_first",
- .data = &sysctl_sched_child_runs_first,
- .maxlen = sizeof(unsigned int),
- .mode = 0644,
- .proc_handler = proc_dointvec,
- },
#ifdef CONFIG_SCHEDSTATS
{
.procname = "sched_schedstats",
--
2.20.1



2022-02-15 12:59:53

by Zhen Ni

[permalink] [raw]
Subject: [PATCH v3 7/8] sched: Move cfs_bandwidth_slice sysctls to fair.c

move cfs_bandwidth_slice sysctls to fair.c and use the
new register_sysctl_init() to register the sysctl interface.

Signed-off-by: Zhen Ni <[email protected]>
---
include/linux/sched/sysctl.h | 4 ---
kernel/sched/fair.c | 51 ++++++++++++++++++++++--------------
kernel/sysctl.c | 10 -------
3 files changed, 31 insertions(+), 34 deletions(-)

diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
index 9fe879602c4f..053688eafd51 100644
--- a/include/linux/sched/sysctl.h
+++ b/include/linux/sched/sysctl.h
@@ -21,10 +21,6 @@ enum sched_tunable_scaling {
SCHED_TUNABLESCALING_END,
};

-#ifdef CONFIG_CFS_BANDWIDTH
-extern unsigned int sysctl_sched_cfs_bandwidth_slice;
-#endif
-
int sysctl_numa_balancing(struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos);

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 4ac1bfe8ca4f..321ddda16909 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -77,25 +77,6 @@ static unsigned int sched_nr_latency = 8;
* parent will (try to) run first.
*/
unsigned int sysctl_sched_child_runs_first __read_mostly;
-#ifdef CONFIG_SYSCTL
-static struct ctl_table sched_child_runs_first_sysctls[] = {
- {
- .procname = "sched_child_runs_first",
- .data = &sysctl_sched_child_runs_first,
- .maxlen = sizeof(unsigned int),
- .mode = 0644,
- .proc_handler = proc_dointvec,
- },
- {}
-};
-
-static int __init sched_child_runs_first_sysctl_init(void)
-{
- register_sysctl_init("kernel", sched_child_runs_first_sysctls);
- return 0;
-}
-late_initcall(sched_child_runs_first_sysctl_init);
-#endif

/*
* SCHED_OTHER wake-up granularity.
@@ -160,7 +141,37 @@ int __weak arch_asym_cpu_priority(int cpu)
*
* (default: 5 msec, units: microseconds)
*/
-unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL;
+static unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL;
+#endif
+
+#ifdef CONFIG_SYSCTL
+static struct ctl_table sched_fair_sysctls[] = {
+ {
+ .procname = "sched_child_runs_first",
+ .data = &sysctl_sched_child_runs_first,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = proc_dointvec,
+ },
+#ifdef CONFIG_CFS_BANDWIDTH
+ {
+ .procname = "sched_cfs_bandwidth_slice_us",
+ .data = &sysctl_sched_cfs_bandwidth_slice,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = proc_dointvec_minmax,
+ .extra1 = SYSCTL_ONE,
+ },
+#endif
+ {}
+};
+
+static int __init sched_fair_sysctl_init(void)
+{
+ register_sysctl_init("kernel", sched_fair_sysctls);
+ return 0;
+}
+late_initcall(sched_fair_sysctl_init);
#endif

static inline void update_load_add(struct load_weight *lw, unsigned long inc)
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index d811e471f7d3..21b797906cc4 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1674,16 +1674,6 @@ static struct ctl_table kern_table[] = {
.extra2 = SYSCTL_ONE,
},
#endif /* CONFIG_NUMA_BALANCING */
-#ifdef CONFIG_CFS_BANDWIDTH
- {
- .procname = "sched_cfs_bandwidth_slice_us",
- .data = &sysctl_sched_cfs_bandwidth_slice,
- .maxlen = sizeof(unsigned int),
- .mode = 0644,
- .proc_handler = proc_dointvec_minmax,
- .extra1 = SYSCTL_ONE,
- },
-#endif
#if defined(CONFIG_ENERGY_MODEL) && defined(CONFIG_CPU_FREQ_GOV_SCHEDUTIL)
{
.procname = "sched_energy_aware",
--
2.20.1



2022-02-15 15:00:45

by Zhen Ni

[permalink] [raw]
Subject: [PATCH v3 5/8] sched: Move rr_timeslice sysctls to rt.c

move rr_timeslice sysctls to rt.c and use the new
register_sysctl_init() to register the sysctl interface.

Signed-off-by: Zhen Ni <[email protected]>
---
include/linux/sched/sysctl.h | 5 -----
kernel/sched/rt.c | 13 +++++++++++--
kernel/sched/sched.h | 1 +
kernel/sysctl.c | 7 -------
4 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
index 81187a8c625d..5515b54bfb57 100644
--- a/include/linux/sched/sysctl.h
+++ b/include/linux/sched/sysctl.h
@@ -31,11 +31,6 @@ extern unsigned int sysctl_sched_uclamp_util_min_rt_default;
extern unsigned int sysctl_sched_cfs_bandwidth_slice;
#endif

-extern int sysctl_sched_rr_timeslice;
-extern int sched_rr_timeslice;
-
-int sched_rr_handler(struct ctl_table *table, int write, void *buffer,
- size_t *lenp, loff_t *ppos);
int sysctl_sched_uclamp_handler(struct ctl_table *table, int write,
void *buffer, size_t *lenp, loff_t *ppos);
int sysctl_numa_balancing(struct ctl_table *table, int write, void *buffer,
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 1106828c4236..95e4d5f31caa 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -8,7 +8,7 @@
#include "pelt.h"

int sched_rr_timeslice = RR_TIMESLICE;
-int sysctl_sched_rr_timeslice = (MSEC_PER_SEC / HZ) * RR_TIMESLICE;
+static int sysctl_sched_rr_timeslice = (MSEC_PER_SEC / HZ) * RR_TIMESLICE;
/* More than 4 hours if BW_SHIFT equals 20. */
static const u64 max_rt_runtime = MAX_BW;

@@ -30,6 +30,8 @@ int sysctl_sched_rt_runtime = 950000;

static int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos);
+static int sched_rr_handler(struct ctl_table *table, int write, void *buffer,
+ size_t *lenp, loff_t *ppos);
#ifdef CONFIG_SYSCTL
static struct ctl_table sched_rt_sysctls[] = {
{
@@ -46,6 +48,13 @@ static struct ctl_table sched_rt_sysctls[] = {
.mode = 0644,
.proc_handler = sched_rt_handler,
},
+ {
+ .procname = "sched_rr_timeslice_ms",
+ .data = &sysctl_sched_rr_timeslice,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = sched_rr_handler,
+ },
{}
};

@@ -3008,7 +3017,7 @@ static int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
return ret;
}

-int sched_rr_handler(struct ctl_table *table, int write, void *buffer,
+static int sched_rr_handler(struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos)
{
int ret;
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 385e74095434..2d3451e06c55 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -105,6 +105,7 @@ extern void call_trace_sched_update_nr_running(struct rq *rq, int count);

extern unsigned int sysctl_sched_rt_period;
extern int sysctl_sched_rt_runtime;
+extern int sched_rr_timeslice;

/*
* Helpers for converting nanosecond timing to jiffy resolution
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index f4434d22246b..cfcbd17005af 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1674,13 +1674,6 @@ static struct ctl_table kern_table[] = {
.extra2 = SYSCTL_ONE,
},
#endif /* CONFIG_NUMA_BALANCING */
- {
- .procname = "sched_rr_timeslice_ms",
- .data = &sysctl_sched_rr_timeslice,
- .maxlen = sizeof(int),
- .mode = 0644,
- .proc_handler = sched_rr_handler,
- },
#ifdef CONFIG_UCLAMP_TASK
{
.procname = "sched_util_clamp_min",
--
2.20.1



2022-02-15 15:29:53

by Zhen Ni

[permalink] [raw]
Subject: [PATCH v3 2/8] sched: Move schedstats sysctls to core.c

move schedstats sysctls to core.c and use the new
register_sysctl_init() to register the sysctl interface.

Signed-off-by: Zhen Ni <[email protected]>
---
include/linux/sched/sysctl.h | 2 --
kernel/sched/core.c | 22 +++++++++++++++++++++-
kernel/sysctl.c | 11 -----------
3 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
index 5490ba24783a..ffe42509a595 100644
--- a/include/linux/sched/sysctl.h
+++ b/include/linux/sched/sysctl.h
@@ -54,8 +54,6 @@ int sysctl_sched_uclamp_handler(struct ctl_table *table, int write,
void *buffer, size_t *lenp, loff_t *ppos);
int sysctl_numa_balancing(struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos);
-int sysctl_schedstats(struct ctl_table *table, int write, void *buffer,
- size_t *lenp, loff_t *ppos);

#if defined(CONFIG_ENERGY_MODEL) && defined(CONFIG_CPU_FREQ_GOV_SCHEDUTIL)
extern unsigned int sysctl_sched_energy_aware;
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 0bf0dc3adf57..3c1239c61b45 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -4354,7 +4354,7 @@ static int __init setup_schedstats(char *str)
__setup("schedstats=", setup_schedstats);

#ifdef CONFIG_PROC_SYSCTL
-int sysctl_schedstats(struct ctl_table *table, int write, void *buffer,
+static int sysctl_schedstats(struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos)
{
struct ctl_table t;
@@ -4373,6 +4373,26 @@ int sysctl_schedstats(struct ctl_table *table, int write, void *buffer,
set_schedstats(state);
return err;
}
+
+static struct ctl_table sched_schedstats_sysctls[] = {
+ {
+ .procname = "sched_schedstats",
+ .data = NULL,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = sysctl_schedstats,
+ .extra1 = SYSCTL_ZERO,
+ .extra2 = SYSCTL_ONE,
+ },
+ {}
+};
+
+static int __init sched_schedstats_sysctl_init(void)
+{
+ register_sysctl_init("kernel", sched_schedstats_sysctls);
+ return 0;
+}
+late_initcall(sched_schedstats_sysctl_init);
#endif /* CONFIG_PROC_SYSCTL */
#endif /* CONFIG_SCHEDSTATS */

diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 24a99b5b7da8..88ff6b27f8ab 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1652,17 +1652,6 @@ int proc_do_static_key(struct ctl_table *table, int write,
}

static struct ctl_table kern_table[] = {
-#ifdef CONFIG_SCHEDSTATS
- {
- .procname = "sched_schedstats",
- .data = NULL,
- .maxlen = sizeof(unsigned int),
- .mode = 0644,
- .proc_handler = sysctl_schedstats,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_ONE,
- },
-#endif /* CONFIG_SCHEDSTATS */
#ifdef CONFIG_TASK_DELAY_ACCT
{
.procname = "task_delayacct",
--
2.20.1



2022-02-15 15:36:51

by Zhen Ni

[permalink] [raw]
Subject: [PATCH v3 8/8] sched: Move energy_aware sysctls to topology.c

move energy_aware sysctls to topology.c and use the new
register_sysctl_init() to register the sysctl interface.

Signed-off-by: Zhen Ni <[email protected]>
---
include/linux/sched/sysctl.h | 6 ------
kernel/sched/topology.c | 25 +++++++++++++++++++++++--
kernel/sysctl.c | 11 -----------
3 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
index 053688eafd51..b6a4063e388d 100644
--- a/include/linux/sched/sysctl.h
+++ b/include/linux/sched/sysctl.h
@@ -24,10 +24,4 @@ enum sched_tunable_scaling {
int sysctl_numa_balancing(struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos);

-#if defined(CONFIG_ENERGY_MODEL) && defined(CONFIG_CPU_FREQ_GOV_SCHEDUTIL)
-extern unsigned int sysctl_sched_energy_aware;
-int sched_energy_aware_handler(struct ctl_table *table, int write,
- void *buffer, size_t *lenp, loff_t *ppos);
-#endif
-
#endif /* _LINUX_SCHED_SYSCTL_H */
diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c
index d201a7052a29..409e27af2034 100644
--- a/kernel/sched/topology.c
+++ b/kernel/sched/topology.c
@@ -207,7 +207,7 @@ sd_parent_degenerate(struct sched_domain *sd, struct sched_domain *parent)

#if defined(CONFIG_ENERGY_MODEL) && defined(CONFIG_CPU_FREQ_GOV_SCHEDUTIL)
DEFINE_STATIC_KEY_FALSE(sched_energy_present);
-unsigned int sysctl_sched_energy_aware = 1;
+static unsigned int sysctl_sched_energy_aware = 1;
DEFINE_MUTEX(sched_energy_mutex);
bool sched_energy_update;

@@ -221,7 +221,7 @@ void rebuild_sched_domains_energy(void)
}

#ifdef CONFIG_PROC_SYSCTL
-int sched_energy_aware_handler(struct ctl_table *table, int write,
+static int sched_energy_aware_handler(struct ctl_table *table, int write,
void *buffer, size_t *lenp, loff_t *ppos)
{
int ret, state;
@@ -238,6 +238,27 @@ int sched_energy_aware_handler(struct ctl_table *table, int write,

return ret;
}
+
+static struct ctl_table sched_energy_aware_sysctls[] = {
+ {
+ .procname = "sched_energy_aware",
+ .data = &sysctl_sched_energy_aware,
+ .maxlen = sizeof(unsigned int),
+ .mode = 0644,
+ .proc_handler = sched_energy_aware_handler,
+ .extra1 = SYSCTL_ZERO,
+ .extra2 = SYSCTL_ONE,
+ },
+ {}
+};
+
+static int __init sched_energy_aware_sysctl_init(void)
+{
+ register_sysctl_init("kernel", sched_energy_aware_sysctls);
+ return 0;
+}
+
+late_initcall(sched_energy_aware_sysctl_init);
#endif

static void free_pd(struct perf_domain *pd)
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 21b797906cc4..ee6701ea73ea 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1674,17 +1674,6 @@ static struct ctl_table kern_table[] = {
.extra2 = SYSCTL_ONE,
},
#endif /* CONFIG_NUMA_BALANCING */
-#if defined(CONFIG_ENERGY_MODEL) && defined(CONFIG_CPU_FREQ_GOV_SCHEDUTIL)
- {
- .procname = "sched_energy_aware",
- .data = &sysctl_sched_energy_aware,
- .maxlen = sizeof(unsigned int),
- .mode = 0644,
- .proc_handler = sched_energy_aware_handler,
- .extra1 = SYSCTL_ZERO,
- .extra2 = SYSCTL_ONE,
- },
-#endif
#ifdef CONFIG_PROVE_LOCKING
{
.procname = "prove_locking",
--
2.20.1



2022-02-17 09:22:35

by Luis Chamberlain

[permalink] [raw]
Subject: Re: [PATCH v3 0/8] sched: Move a series of sysctls starting with sys/kernel/sched_*

On Tue, Feb 15, 2022 at 07:45:56PM +0800, Zhen Ni wrote:
> move a series of sysctls starting with sys/kernel/sched_* and use the
> new register_sysctl_init() to register the sysctl interface.

Peter, Andrew,

I'm starting to get more sysctl patches under kernel/ other than the
scheduler. To avoid low quality patches, try to see proactively what
conflicts may lie ahead, ensure everything is applies on linux-next,
and to ensure all this gets baked through 0-day for a while, I'm
going to shove all pending patches into a sysctl-next branch based on
Linus' tree.

I think it doesn't make sense now to just say, do this for sched for one
release. I think we need to get these more widely tested in a faster
way, and to get conflicts ironed out faster too.

Are you folks OK if say Stephen adds a sysctl-next for linux-next so
we can beat on these there too?

FWIW queued on sysctl-next [0].

[0] https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git/log/?h=sysctl-next

Luis

2022-02-18 02:56:17

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH v3 0/8] sched: Move a series of sysctls starting with sys/kernel/sched_*

On Wed, 16 Feb 2022 23:51:08 -0800 Luis Chamberlain <[email protected]> wrote:

> Are you folks OK if say Stephen adds a sysctl-next for linux-next so
> we can beat on these there too?

Sure. I just sent you a couple which I've collected.

2022-02-19 00:55:55

by Luis Chamberlain

[permalink] [raw]
Subject: Re: [PATCH v3 0/8] sched: Move a series of sysctls starting with sys/kernel/sched_*

On Thu, Feb 17, 2022 at 06:52:38PM -0800, Andrew Morton wrote:
> On Wed, 16 Feb 2022 23:51:08 -0800 Luis Chamberlain <[email protected]> wrote:
>
> > Are you folks OK if say Stephen adds a sysctl-next for linux-next so
> > we can beat on these there too?
>
> Sure. I just sent you a couple which I've collected.

OK thanks! I've merged those into sysctl-next [0]

Stephen,

Can you add it to the set of trees you pull? I'll send a patch to add
this to MAINTAINERS too then.

[0] git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git sysctl-next

Luis

2022-02-21 09:34:19

by Stephen Rothwell

[permalink] [raw]
Subject: Re: [PATCH v3 0/8] sched: Move a series of sysctls starting with sys/kernel/sched_*

Hi Luis,

On Fri, 18 Feb 2022 10:21:56 -0800 Luis Chamberlain <[email protected]> wrote:
>
> On Thu, Feb 17, 2022 at 06:52:38PM -0800, Andrew Morton wrote:
> > On Wed, 16 Feb 2022 23:51:08 -0800 Luis Chamberlain <[email protected]> wrote:
> >
> > > Are you folks OK if say Stephen adds a sysctl-next for linux-next so
> > > we can beat on these there too?
> >
> > Sure. I just sent you a couple which I've collected.
>
> OK thanks! I've merged those into sysctl-next [0]
>
> Stephen,
>
> Can you add it to the set of trees you pull? I'll send a patch to add
> this to MAINTAINERS too then.
>
> [0] git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux.git sysctl-next

Added from whenever the next linux-next tree gets done.

Thanks for adding your subsystem tree as a participant of linux-next. As
you may know, this is not a judgement of your code. The purpose of
linux-next is for integration testing and to lower the impact of
conflicts between subsystems in the next merge window.

You will need to ensure that the patches/commits in your tree/series have
been:
* submitted under GPL v2 (or later) and include the Contributor's
Signed-off-by,
* posted to the relevant mailing list,
* reviewed by you (or another maintainer of your subsystem tree),
* successfully unit tested, and
* destined for the current or next Linux merge window.

Basically, this should be just what you would send to Linus (or ask him
to fetch). It is allowed to be rebased if you deem it necessary.

--
Cheers,
Stephen Rothwell
[email protected]


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature