* [PATCH 0/3] sched/rt fixes for 4.19
@ 2024-02-22 15:13 Petr Vorel
2024-02-22 15:13 ` [PATCH 1/3] sched/rt: Fix sysctl_sched_rr_timeslice intial value Petr Vorel
` (12 more replies)
0 siblings, 13 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Petr Vorel, Greg Kroah-Hartman, Sasha Levin, Cyril Hrubis,
Ingo Molnar, Peter Zijlstra
Hi,
maybe you will not like introducing 'static int int_max = INT_MAX;' for
this old kernel which EOL in 10 months.
Cyril Hrubis (3):
sched/rt: Fix sysctl_sched_rr_timeslice intial value
sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
sched/rt: Disallow writing invalid values to sched_rt_period_us
kernel/sched/rt.c | 10 +++++-----
kernel/sysctl.c | 5 +++++
2 files changed, 10 insertions(+), 5 deletions(-)
--
2.35.3
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/3] sched/rt: Fix sysctl_sched_rr_timeslice intial value
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 2/3] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset Petr Vorel
` (11 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Cyril Hrubis, Greg Kroah-Hartman, Sasha Levin, Ingo Molnar,
Peter Zijlstra, Petr Vorel, Mel Gorman
From: Cyril Hrubis <chrubis@suse.cz>
[ Upstream commit c7fcb99877f9f542c918509b2801065adcaf46fa ]
There is a 10% rounding error in the intial value of the
sysctl_sched_rr_timeslice with CONFIG_HZ_300=y.
This was found with LTP test sched_rr_get_interval01:
sched_rr_get_interval01.c:57: TPASS: sched_rr_get_interval() passed
sched_rr_get_interval01.c:64: TPASS: Time quantum 0s 99999990ns
sched_rr_get_interval01.c:72: TFAIL: /proc/sys/kernel/sched_rr_timeslice_ms != 100 got 90
sched_rr_get_interval01.c:57: TPASS: sched_rr_get_interval() passed
sched_rr_get_interval01.c:64: TPASS: Time quantum 0s 99999990ns
sched_rr_get_interval01.c:72: TFAIL: /proc/sys/kernel/sched_rr_timeslice_ms != 100 got 90
What this test does is to compare the return value from the
sched_rr_get_interval() and the sched_rr_timeslice_ms sysctl file and
fails if they do not match.
The problem it found is the intial sysctl file value which was computed as:
static int sysctl_sched_rr_timeslice = (MSEC_PER_SEC / HZ) * RR_TIMESLICE;
which works fine as long as MSEC_PER_SEC is multiple of HZ, however it
introduces 10% rounding error for CONFIG_HZ_300:
(MSEC_PER_SEC / HZ) * (100 * HZ / 1000)
(1000 / 300) * (100 * 300 / 1000)
3 * 30 = 90
This can be easily fixed by reversing the order of the multiplication
and division. After this fix we get:
(MSEC_PER_SEC * (100 * HZ / 1000)) / HZ
(1000 * (100 * 300 / 1000)) / 300
(1000 * 30) / 300 = 100
Fixes: 975e155ed873 ("sched/rt: Show the 'sched_rr_timeslice' SCHED_RR timeslice tuning knob in milliseconds")
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Acked-by: Mel Gorman <mgorman@suse.de>
Tested-by: Petr Vorel <pvorel@suse.cz>
Link: https://lore.kernel.org/r/20230802151906.25258-2-chrubis@suse.cz
[ pvorel: rebased for 4.19 ]
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
kernel/sched/rt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 394c66442cff..ce4594215728 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;
+int sysctl_sched_rr_timeslice = (MSEC_PER_SEC * RR_TIMESLICE) / HZ;
static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun);
--
2.35.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 2/3] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
2024-02-22 15:13 ` [PATCH 1/3] sched/rt: Fix sysctl_sched_rr_timeslice intial value Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 3/3] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
` (10 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Cyril Hrubis, Greg Kroah-Hartman, Sasha Levin, Ingo Molnar,
Peter Zijlstra, Petr Vorel, Mel Gorman
From: Cyril Hrubis <chrubis@suse.cz>
[ Upstream commit c1fc6484e1fb7cc2481d169bfef129a1b0676abe ]
The sched_rr_timeslice can be reset to default by writing value that is
<= 0. However after reading from this file we always got the last value
written, which is not useful at all.
$ echo -1 > /proc/sys/kernel/sched_rr_timeslice_ms
$ cat /proc/sys/kernel/sched_rr_timeslice_ms
-1
Fix this by setting the variable that holds the sysctl file value to the
jiffies_to_msecs(RR_TIMESLICE) in case that <= 0 value was written.
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Acked-by: Mel Gorman <mgorman@suse.de>
Tested-by: Petr Vorel <pvorel@suse.cz>
Link: https://lore.kernel.org/r/20230802151906.25258-3-chrubis@suse.cz
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
kernel/sched/rt.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index ce4594215728..2ea4da8c5f3a 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -2735,6 +2735,9 @@ int sched_rr_handler(struct ctl_table *table, int write,
sched_rr_timeslice =
sysctl_sched_rr_timeslice <= 0 ? RR_TIMESLICE :
msecs_to_jiffies(sysctl_sched_rr_timeslice);
+
+ if (sysctl_sched_rr_timeslice <= 0)
+ sysctl_sched_rr_timeslice = jiffies_to_msecs(RR_TIMESLICE);
}
mutex_unlock(&mutex);
--
2.35.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 3/3] sched/rt: Disallow writing invalid values to sched_rt_period_us
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
2024-02-22 15:13 ` [PATCH 1/3] sched/rt: Fix sysctl_sched_rr_timeslice intial value Petr Vorel
2024-02-22 15:13 ` [PATCH 2/3] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 0/3] sched/rt fixes for 5.15, 5.10, 5.4 Petr Vorel
` (9 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Cyril Hrubis, Greg Kroah-Hartman, Sasha Levin, Ingo Molnar,
Peter Zijlstra, Petr Vorel
From: Cyril Hrubis <chrubis@suse.cz>
[ Upstream commit 079be8fc630943d9fc70a97807feb73d169ee3fc ]
The validation of the value written to sched_rt_period_us was broken
because:
- the sysclt_sched_rt_period is declared as unsigned int
- parsed by proc_do_intvec()
- the range is asserted after the value parsed by proc_do_intvec()
Because of this negative values written to the file were written into a
unsigned integer that were later on interpreted as large positive
integers which did passed the check:
if (sysclt_sched_rt_period <= 0)
return EINVAL;
This commit fixes the parsing by setting explicit range for both
perid_us and runtime_us into the sched_rt_sysctls table and processes
the values with proc_dointvec_minmax() instead.
Alternatively if we wanted to use full range of unsigned int for the
period value we would have to split the proc_handler and use
proc_douintvec() for it however even the
Documentation/scheduller/sched-rt-group.rst describes the range as 1 to
INT_MAX.
As far as I can tell the only problem this causes is that the sysctl
file allows writing negative values which when read back may confuse
userspace.
There is also a LTP test being submitted for these sysctl files at:
http://patchwork.ozlabs.org/project/ltp/patch/20230901144433.2526-1-chrubis@suse.cz/
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20231002115553.3007-2-chrubis@suse.cz
[ pvorel: rebased for 4.19 ]
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
kernel/sched/rt.c | 5 +----
kernel/sysctl.c | 5 +++++
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 2ea4da8c5f3a..deb9366e4f30 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -2658,9 +2658,6 @@ static int sched_rt_global_constraints(void)
static int sched_rt_global_validate(void)
{
- if (sysctl_sched_rt_period <= 0)
- return -EINVAL;
-
if ((sysctl_sched_rt_runtime != RUNTIME_INF) &&
(sysctl_sched_rt_runtime > sysctl_sched_rt_period))
return -EINVAL;
@@ -2690,7 +2687,7 @@ int sched_rt_handler(struct ctl_table *table, int write,
old_period = sysctl_sched_rt_period;
old_runtime = sysctl_sched_rt_runtime;
- ret = proc_dointvec(table, write, buffer, lenp, ppos);
+ ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
if (!ret && write) {
ret = sched_rt_global_validate();
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 4bb194f096ec..6ce9f10b9c7d 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -127,6 +127,7 @@ static int zero;
static int __maybe_unused one = 1;
static int __maybe_unused two = 2;
static int __maybe_unused four = 4;
+static int int_max = INT_MAX;
static unsigned long zero_ul;
static unsigned long one_ul = 1;
static unsigned long long_max = LONG_MAX;
@@ -464,6 +465,8 @@ static struct ctl_table kern_table[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = sched_rt_handler,
+ .extra1 = &one,
+ .extra2 = &int_max,
},
{
.procname = "sched_rt_runtime_us",
@@ -471,6 +474,8 @@ static struct ctl_table kern_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = sched_rt_handler,
+ .extra1 = &neg_one,
+ .extra2 = &int_max,
},
{
.procname = "sched_rr_timeslice_ms",
--
2.35.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 0/3] sched/rt fixes for 5.15, 5.10, 5.4
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (2 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 3/3] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:36 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 1/3] sched/rt: Fix sysctl_sched_rr_timeslice intial value Petr Vorel
` (8 subsequent siblings)
12 siblings, 1 reply; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Petr Vorel, Greg Kroah-Hartman, Sasha Levin, Cyril Hrubis,
Ingo Molnar, Peter Zijlstra
Cyril Hrubis (3):
sched/rt: Fix sysctl_sched_rr_timeslice intial value
sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
sched/rt: Disallow writing invalid values to sched_rt_period_us
kernel/sched/rt.c | 10 +++++-----
kernel/sysctl.c | 4 ++++
2 files changed, 9 insertions(+), 5 deletions(-)
--
2.35.3
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/3] sched/rt: Fix sysctl_sched_rr_timeslice intial value
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (3 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 0/3] sched/rt fixes for 5.15, 5.10, 5.4 Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 2/3] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset Petr Vorel
` (7 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Cyril Hrubis, Greg Kroah-Hartman, Sasha Levin, Ingo Molnar,
Peter Zijlstra, Petr Vorel, Mel Gorman
From: Cyril Hrubis <chrubis@suse.cz>
[ Upstream commit c7fcb99877f9f542c918509b2801065adcaf46fa ]
There is a 10% rounding error in the intial value of the
sysctl_sched_rr_timeslice with CONFIG_HZ_300=y.
This was found with LTP test sched_rr_get_interval01:
sched_rr_get_interval01.c:57: TPASS: sched_rr_get_interval() passed
sched_rr_get_interval01.c:64: TPASS: Time quantum 0s 99999990ns
sched_rr_get_interval01.c:72: TFAIL: /proc/sys/kernel/sched_rr_timeslice_ms != 100 got 90
sched_rr_get_interval01.c:57: TPASS: sched_rr_get_interval() passed
sched_rr_get_interval01.c:64: TPASS: Time quantum 0s 99999990ns
sched_rr_get_interval01.c:72: TFAIL: /proc/sys/kernel/sched_rr_timeslice_ms != 100 got 90
What this test does is to compare the return value from the
sched_rr_get_interval() and the sched_rr_timeslice_ms sysctl file and
fails if they do not match.
The problem it found is the intial sysctl file value which was computed as:
static int sysctl_sched_rr_timeslice = (MSEC_PER_SEC / HZ) * RR_TIMESLICE;
which works fine as long as MSEC_PER_SEC is multiple of HZ, however it
introduces 10% rounding error for CONFIG_HZ_300:
(MSEC_PER_SEC / HZ) * (100 * HZ / 1000)
(1000 / 300) * (100 * 300 / 1000)
3 * 30 = 90
This can be easily fixed by reversing the order of the multiplication
and division. After this fix we get:
(MSEC_PER_SEC * (100 * HZ / 1000)) / HZ
(1000 * (100 * 300 / 1000)) / 300
(1000 * 30) / 300 = 100
Fixes: 975e155ed873 ("sched/rt: Show the 'sched_rr_timeslice' SCHED_RR timeslice tuning knob in milliseconds")
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Acked-by: Mel Gorman <mgorman@suse.de>
Tested-by: Petr Vorel <pvorel@suse.cz>
Link: https://lore.kernel.org/r/20230802151906.25258-2-chrubis@suse.cz
[ pvorel: rebased for 5.15, 5.10, 5.4 ]
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
kernel/sched/rt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 7045595aacac..3394b7f923a0 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;
+int sysctl_sched_rr_timeslice = (MSEC_PER_SEC * RR_TIMESLICE) / HZ;
/* More than 4 hours if BW_SHIFT equals 20. */
static const u64 max_rt_runtime = MAX_BW;
--
2.35.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 2/3] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (4 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 1/3] sched/rt: Fix sysctl_sched_rr_timeslice intial value Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 3/3] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
` (6 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Cyril Hrubis, Greg Kroah-Hartman, Sasha Levin, Ingo Molnar,
Peter Zijlstra, Petr Vorel, Mel Gorman
From: Cyril Hrubis <chrubis@suse.cz>
[ Upstream commit c1fc6484e1fb7cc2481d169bfef129a1b0676abe ]
The sched_rr_timeslice can be reset to default by writing value that is
<= 0. However after reading from this file we always got the last value
written, which is not useful at all.
$ echo -1 > /proc/sys/kernel/sched_rr_timeslice_ms
$ cat /proc/sys/kernel/sched_rr_timeslice_ms
-1
Fix this by setting the variable that holds the sysctl file value to the
jiffies_to_msecs(RR_TIMESLICE) in case that <= 0 value was written.
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Acked-by: Mel Gorman <mgorman@suse.de>
Tested-by: Petr Vorel <pvorel@suse.cz>
Link: https://lore.kernel.org/r/20230802151906.25258-3-chrubis@suse.cz
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
kernel/sched/rt.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 3394b7f923a0..b05684202b20 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -2883,6 +2883,9 @@ int sched_rr_handler(struct ctl_table *table, int write, void *buffer,
sched_rr_timeslice =
sysctl_sched_rr_timeslice <= 0 ? RR_TIMESLICE :
msecs_to_jiffies(sysctl_sched_rr_timeslice);
+
+ if (sysctl_sched_rr_timeslice <= 0)
+ sysctl_sched_rr_timeslice = jiffies_to_msecs(RR_TIMESLICE);
}
mutex_unlock(&mutex);
--
2.35.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 3/3] sched/rt: Disallow writing invalid values to sched_rt_period_us
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (5 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 2/3] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 0/2] sched/rt fixes for 6.1 Petr Vorel
` (5 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Cyril Hrubis, Greg Kroah-Hartman, Sasha Levin, Ingo Molnar,
Peter Zijlstra, Petr Vorel
From: Cyril Hrubis <chrubis@suse.cz>
[ Upstream commit 079be8fc630943d9fc70a97807feb73d169ee3fc ]
The validation of the value written to sched_rt_period_us was broken
because:
- the sysclt_sched_rt_period is declared as unsigned int
- parsed by proc_do_intvec()
- the range is asserted after the value parsed by proc_do_intvec()
Because of this negative values written to the file were written into a
unsigned integer that were later on interpreted as large positive
integers which did passed the check:
if (sysclt_sched_rt_period <= 0)
return EINVAL;
This commit fixes the parsing by setting explicit range for both
perid_us and runtime_us into the sched_rt_sysctls table and processes
the values with proc_dointvec_minmax() instead.
Alternatively if we wanted to use full range of unsigned int for the
period value we would have to split the proc_handler and use
proc_douintvec() for it however even the
Documentation/scheduller/sched-rt-group.rst describes the range as 1 to
INT_MAX.
As far as I can tell the only problem this causes is that the sysctl
file allows writing negative values which when read back may confuse
userspace.
There is also a LTP test being submitted for these sysctl files at:
http://patchwork.ozlabs.org/project/ltp/patch/20230901144433.2526-1-chrubis@suse.cz/
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20231002115553.3007-2-chrubis@suse.cz
[ pvorel: rebased for 5.15, 5.10, 5.4 ]
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
kernel/sched/rt.c | 5 +----
kernel/sysctl.c | 4 ++++
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index b05684202b20..5fc99dce5145 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -2806,9 +2806,6 @@ static int sched_rt_global_constraints(void)
static int sched_rt_global_validate(void)
{
- if (sysctl_sched_rt_period <= 0)
- return -EINVAL;
-
if ((sysctl_sched_rt_runtime != RUNTIME_INF) &&
((sysctl_sched_rt_runtime > sysctl_sched_rt_period) ||
((u64)sysctl_sched_rt_runtime *
@@ -2839,7 +2836,7 @@ int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
old_period = sysctl_sched_rt_period;
old_runtime = sysctl_sched_rt_runtime;
- ret = proc_dointvec(table, write, buffer, lenp, ppos);
+ ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
if (!ret && write) {
ret = sched_rt_global_validate();
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 928798f89ca1..4554e80c4272 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1821,6 +1821,8 @@ static struct ctl_table kern_table[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = sched_rt_handler,
+ .extra1 = SYSCTL_ONE,
+ .extra2 = SYSCTL_INT_MAX,
},
{
.procname = "sched_rt_runtime_us",
@@ -1828,6 +1830,8 @@ static struct ctl_table kern_table[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = sched_rt_handler,
+ .extra1 = SYSCTL_NEG_ONE,
+ .extra2 = SYSCTL_INT_MAX,
},
{
.procname = "sched_deadline_period_max_us",
--
2.35.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 0/2] sched/rt fixes for 6.1
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (6 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 3/3] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 1/2] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset Petr Vorel
` (4 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Petr Vorel, Greg Kroah-Hartman, Sasha Levin, Cyril Hrubis,
Ingo Molnar, Peter Zijlstra
Hi,
FYI c7fcb99877f9 has already been cherry-picked as
5fce29ab20cb05797239e4628fb683d2ee9aa140.
Cyril Hrubis (2):
sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
sched/rt: Disallow writing invalid values to sched_rt_period_us
kernel/sched/rt.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
--
2.35.3
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/2] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (7 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 0/2] sched/rt fixes for 6.1 Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 2/2] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
` (3 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Cyril Hrubis, Greg Kroah-Hartman, Sasha Levin, Ingo Molnar,
Peter Zijlstra, Petr Vorel, Mel Gorman
From: Cyril Hrubis <chrubis@suse.cz>
[ Upstream commit c1fc6484e1fb7cc2481d169bfef129a1b0676abe ]
The sched_rr_timeslice can be reset to default by writing value that is
<= 0. However after reading from this file we always got the last value
written, which is not useful at all.
$ echo -1 > /proc/sys/kernel/sched_rr_timeslice_ms
$ cat /proc/sys/kernel/sched_rr_timeslice_ms
-1
Fix this by setting the variable that holds the sysctl file value to the
jiffies_to_msecs(RR_TIMESLICE) in case that <= 0 value was written.
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Acked-by: Mel Gorman <mgorman@suse.de>
Tested-by: Petr Vorel <pvorel@suse.cz>
Link: https://lore.kernel.org/r/20230802151906.25258-3-chrubis@suse.cz
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
kernel/sched/rt.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 76bafa8d331a..f79a6f36777a 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -3047,6 +3047,9 @@ static int sched_rr_handler(struct ctl_table *table, int write, void *buffer,
sched_rr_timeslice =
sysctl_sched_rr_timeslice <= 0 ? RR_TIMESLICE :
msecs_to_jiffies(sysctl_sched_rr_timeslice);
+
+ if (sysctl_sched_rr_timeslice <= 0)
+ sysctl_sched_rr_timeslice = jiffies_to_msecs(RR_TIMESLICE);
}
mutex_unlock(&mutex);
--
2.35.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 2/2] sched/rt: Disallow writing invalid values to sched_rt_period_us
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (8 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 1/2] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 0/1] sched/rt fixes for 6.6 Petr Vorel
` (2 subsequent siblings)
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Cyril Hrubis, Greg Kroah-Hartman, Sasha Levin, Ingo Molnar,
Peter Zijlstra, Petr Vorel
From: Cyril Hrubis <chrubis@suse.cz>
[ Upstream commit 079be8fc630943d9fc70a97807feb73d169ee3fc ]
The validation of the value written to sched_rt_period_us was broken
because:
- the sysclt_sched_rt_period is declared as unsigned int
- parsed by proc_do_intvec()
- the range is asserted after the value parsed by proc_do_intvec()
Because of this negative values written to the file were written into a
unsigned integer that were later on interpreted as large positive
integers which did passed the check:
if (sysclt_sched_rt_period <= 0)
return EINVAL;
This commit fixes the parsing by setting explicit range for both
perid_us and runtime_us into the sched_rt_sysctls table and processes
the values with proc_dointvec_minmax() instead.
Alternatively if we wanted to use full range of unsigned int for the
period value we would have to split the proc_handler and use
proc_douintvec() for it however even the
Documentation/scheduller/sched-rt-group.rst describes the range as 1 to
INT_MAX.
As far as I can tell the only problem this causes is that the sysctl
file allows writing negative values which when read back may confuse
userspace.
There is also a LTP test being submitted for these sysctl files at:
http://patchwork.ozlabs.org/project/ltp/patch/20230901144433.2526-1-chrubis@suse.cz/
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20231002115553.3007-2-chrubis@suse.cz
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
kernel/sched/rt.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index f79a6f36777a..3a2335bc1d58 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -37,6 +37,8 @@ static struct ctl_table sched_rt_sysctls[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = sched_rt_handler,
+ .extra1 = SYSCTL_ONE,
+ .extra2 = SYSCTL_INT_MAX,
},
{
.procname = "sched_rt_runtime_us",
@@ -44,6 +46,8 @@ static struct ctl_table sched_rt_sysctls[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = sched_rt_handler,
+ .extra1 = SYSCTL_NEG_ONE,
+ .extra2 = SYSCTL_INT_MAX,
},
{
.procname = "sched_rr_timeslice_ms",
@@ -2970,9 +2974,6 @@ static int sched_rt_global_constraints(void)
#ifdef CONFIG_SYSCTL
static int sched_rt_global_validate(void)
{
- if (sysctl_sched_rt_period <= 0)
- return -EINVAL;
-
if ((sysctl_sched_rt_runtime != RUNTIME_INF) &&
((sysctl_sched_rt_runtime > sysctl_sched_rt_period) ||
((u64)sysctl_sched_rt_runtime *
@@ -3003,7 +3004,7 @@ static int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
old_period = sysctl_sched_rt_period;
old_runtime = sysctl_sched_rt_runtime;
- ret = proc_dointvec(table, write, buffer, lenp, ppos);
+ ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
if (!ret && write) {
ret = sched_rt_global_validate();
--
2.35.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH 0/1] sched/rt fixes for 6.6
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (9 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 2/2] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 1/1] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
2024-02-22 15:32 ` [PATCH 0/3] sched/rt fixes for 4.19 Greg Kroah-Hartman
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Petr Vorel, Greg Kroah-Hartman, Sasha Levin, Cyril Hrubis,
Ingo Molnar, Peter Zijlstra
Cyril Hrubis (1):
sched/rt: Disallow writing invalid values to sched_rt_period_us
kernel/sched/rt.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
--
2.35.3
^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH 1/1] sched/rt: Disallow writing invalid values to sched_rt_period_us
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (10 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 0/1] sched/rt fixes for 6.6 Petr Vorel
@ 2024-02-22 15:13 ` Petr Vorel
2024-02-22 15:32 ` [PATCH 0/3] sched/rt fixes for 4.19 Greg Kroah-Hartman
12 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:13 UTC (permalink / raw)
To: stable
Cc: Cyril Hrubis, Greg Kroah-Hartman, Sasha Levin, Ingo Molnar,
Peter Zijlstra, Petr Vorel
From: Cyril Hrubis <chrubis@suse.cz>
[ Upstream commit 079be8fc630943d9fc70a97807feb73d169ee3fc ]
The validation of the value written to sched_rt_period_us was broken
because:
- the sysclt_sched_rt_period is declared as unsigned int
- parsed by proc_do_intvec()
- the range is asserted after the value parsed by proc_do_intvec()
Because of this negative values written to the file were written into a
unsigned integer that were later on interpreted as large positive
integers which did passed the check:
if (sysclt_sched_rt_period <= 0)
return EINVAL;
This commit fixes the parsing by setting explicit range for both
perid_us and runtime_us into the sched_rt_sysctls table and processes
the values with proc_dointvec_minmax() instead.
Alternatively if we wanted to use full range of unsigned int for the
period value we would have to split the proc_handler and use
proc_douintvec() for it however even the
Documentation/scheduller/sched-rt-group.rst describes the range as 1 to
INT_MAX.
As far as I can tell the only problem this causes is that the sysctl
file allows writing negative values which when read back may confuse
userspace.
There is also a LTP test being submitted for these sysctl files at:
http://patchwork.ozlabs.org/project/ltp/patch/20230901144433.2526-1-chrubis@suse.cz/
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20231002115553.3007-2-chrubis@suse.cz
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
kernel/sched/rt.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 904dd8534597..4ac36eb4cdee 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -37,6 +37,8 @@ static struct ctl_table sched_rt_sysctls[] = {
.maxlen = sizeof(unsigned int),
.mode = 0644,
.proc_handler = sched_rt_handler,
+ .extra1 = SYSCTL_ONE,
+ .extra2 = SYSCTL_INT_MAX,
},
{
.procname = "sched_rt_runtime_us",
@@ -44,6 +46,8 @@ static struct ctl_table sched_rt_sysctls[] = {
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = sched_rt_handler,
+ .extra1 = SYSCTL_NEG_ONE,
+ .extra2 = SYSCTL_INT_MAX,
},
{
.procname = "sched_rr_timeslice_ms",
@@ -2989,9 +2993,6 @@ static int sched_rt_global_constraints(void)
#ifdef CONFIG_SYSCTL
static int sched_rt_global_validate(void)
{
- if (sysctl_sched_rt_period <= 0)
- return -EINVAL;
-
if ((sysctl_sched_rt_runtime != RUNTIME_INF) &&
((sysctl_sched_rt_runtime > sysctl_sched_rt_period) ||
((u64)sysctl_sched_rt_runtime *
@@ -3022,7 +3023,7 @@ static int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
old_period = sysctl_sched_rt_period;
old_runtime = sysctl_sched_rt_runtime;
- ret = proc_dointvec(table, write, buffer, lenp, ppos);
+ ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
if (!ret && write) {
ret = sched_rt_global_validate();
--
2.35.3
^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: [PATCH 0/3] sched/rt fixes for 4.19
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
` (11 preceding siblings ...)
2024-02-22 15:13 ` [PATCH 1/1] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
@ 2024-02-22 15:32 ` Greg Kroah-Hartman
2024-02-22 16:50 ` Petr Vorel
12 siblings, 1 reply; 17+ messages in thread
From: Greg Kroah-Hartman @ 2024-02-22 15:32 UTC (permalink / raw)
To: Petr Vorel; +Cc: stable, Sasha Levin, Cyril Hrubis, Ingo Molnar, Peter Zijlstra
On Thu, Feb 22, 2024 at 04:13:21PM +0100, Petr Vorel wrote:
> Hi,
>
> maybe you will not like introducing 'static int int_max = INT_MAX;' for
> this old kernel which EOL in 10 months.
That's fine, not a big deal :)
>
> Cyril Hrubis (3):
> sched/rt: Fix sysctl_sched_rr_timeslice intial value
> sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
> sched/rt: Disallow writing invalid values to sched_rt_period_us
>
> kernel/sched/rt.c | 10 +++++-----
> kernel/sysctl.c | 5 +++++
> 2 files changed, 10 insertions(+), 5 deletions(-)
Thanks for the patches, but they all got connected into the same thread,
making it impossible to detect which ones are for what branches :(
Can you put the version in the [PATCH X/Y] section like [PATCH 4.14 X/Y]
or just make separate threads so we have a chance?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 0/3] sched/rt fixes for 5.15, 5.10, 5.4
2024-02-22 15:13 ` [PATCH 0/3] sched/rt fixes for 5.15, 5.10, 5.4 Petr Vorel
@ 2024-02-22 15:36 ` Petr Vorel
0 siblings, 0 replies; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 15:36 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, Sasha Levin, Cyril Hrubis, Ingo Molnar,
Peter Zijlstra
Hi all,
> Cyril Hrubis (3):
> sched/rt: Fix sysctl_sched_rr_timeslice intial value
> sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
> sched/rt: Disallow writing invalid values to sched_rt_period_us
I'm sorry for the noise, while this patchset is working for 5.15 and 5.10,
it fails to compile on 5.4 due missing SYSCTL_ONE:
kernel/sysctl.c:477:14: error: ‘SYSCTL_NEG_ONE’ undeclared here (not in a function); did you mean ‘SYSCTL_ONE’?
.extra1 = SYSCTL_NEG_ONE,
^~~~~~~~~~~~~~
SYSCTL_ONE
This is because 78e36f3b0dae ("sysctl: move some boundary constants from
sysctl.c to sysctl_vals") was backported from 5.17 to 5.15 and 5.10 but not to
5.4. If you agree on the same approach I took for 4.19 (create variable in
kernel/sysctl.c) and send patch for 5.4.
Or, we can backport just to >= 5.10. Cyril and others who merged this obviously
did not consider this important enough to backport. OTOH we have 2 LTP tests
which are testing these:
* sched_rr_get_interval01 tests c7fcb99877f9 (on non-default CONFIG_HZ)
* the other two commits are tested by proc_sched_rt01
Therefore I thought fixing at least 6.* would be good.
Kind regards,
Petr
> kernel/sched/rt.c | 10 +++++-----
> kernel/sysctl.c | 4 ++++
> 2 files changed, 9 insertions(+), 5 deletions(-)
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 0/3] sched/rt fixes for 4.19
2024-02-22 15:32 ` [PATCH 0/3] sched/rt fixes for 4.19 Greg Kroah-Hartman
@ 2024-02-22 16:50 ` Petr Vorel
2024-02-22 17:19 ` Greg Kroah-Hartman
0 siblings, 1 reply; 17+ messages in thread
From: Petr Vorel @ 2024-02-22 16:50 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: stable, Sasha Levin, Cyril Hrubis, Ingo Molnar, Peter Zijlstra
Hi Greg,
> On Thu, Feb 22, 2024 at 04:13:21PM +0100, Petr Vorel wrote:
> > Hi,
> > maybe you will not like introducing 'static int int_max = INT_MAX;' for
> > this old kernel which EOL in 10 months.
> That's fine, not a big deal :)
Thanks for a quick info. I guess this is a reply to my question about
SYSCTL_NEG_ONE failure on missing SYSCTL_NEG_ONE. Therefore I'll create
static int __maybe_unused neg_one = -1; (which was used before 78e36f3b0dae).
> > Cyril Hrubis (3):
> > sched/rt: Fix sysctl_sched_rr_timeslice intial value
> > sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
> > sched/rt: Disallow writing invalid values to sched_rt_period_us
> > kernel/sched/rt.c | 10 +++++-----
> > kernel/sysctl.c | 5 +++++
> > 2 files changed, 10 insertions(+), 5 deletions(-)
> Thanks for the patches, but they all got connected into the same thread,
> making it impossible to detect which ones are for what branches :(
> Can you put the version in the [PATCH X/Y] section like [PATCH 4.14 X/Y]
> or just make separate threads so we have a chance?
I'm sorry, I'll resent all patches properly.
Kind regards,
Petr
> thanks,
> greg k-h
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH 0/3] sched/rt fixes for 4.19
2024-02-22 16:50 ` Petr Vorel
@ 2024-02-22 17:19 ` Greg Kroah-Hartman
0 siblings, 0 replies; 17+ messages in thread
From: Greg Kroah-Hartman @ 2024-02-22 17:19 UTC (permalink / raw)
To: Petr Vorel; +Cc: stable, Sasha Levin, Cyril Hrubis, Ingo Molnar, Peter Zijlstra
On Thu, Feb 22, 2024 at 05:50:49PM +0100, Petr Vorel wrote:
> Hi Greg,
>
> > On Thu, Feb 22, 2024 at 04:13:21PM +0100, Petr Vorel wrote:
> > > Hi,
>
> > > maybe you will not like introducing 'static int int_max = INT_MAX;' for
> > > this old kernel which EOL in 10 months.
>
> > That's fine, not a big deal :)
>
> Thanks for a quick info. I guess this is a reply to my question about
> SYSCTL_NEG_ONE failure on missing SYSCTL_NEG_ONE. Therefore I'll create
> static int __maybe_unused neg_one = -1; (which was used before 78e36f3b0dae).
Great.
> > > Cyril Hrubis (3):
> > > sched/rt: Fix sysctl_sched_rr_timeslice intial value
> > > sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
> > > sched/rt: Disallow writing invalid values to sched_rt_period_us
>
> > > kernel/sched/rt.c | 10 +++++-----
> > > kernel/sysctl.c | 5 +++++
> > > 2 files changed, 10 insertions(+), 5 deletions(-)
>
> > Thanks for the patches, but they all got connected into the same thread,
> > making it impossible to detect which ones are for what branches :(
>
> > Can you put the version in the [PATCH X/Y] section like [PATCH 4.14 X/Y]
> > or just make separate threads so we have a chance?
>
> I'm sorry, I'll resent all patches properly.
No worries, the second round looks good. I'll queue them up after this
latest set of stable kernels goes out in a few days.
thanks!
greg k-h
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2024-02-22 17:19 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-22 15:13 [PATCH 0/3] sched/rt fixes for 4.19 Petr Vorel
2024-02-22 15:13 ` [PATCH 1/3] sched/rt: Fix sysctl_sched_rr_timeslice intial value Petr Vorel
2024-02-22 15:13 ` [PATCH 2/3] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset Petr Vorel
2024-02-22 15:13 ` [PATCH 3/3] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
2024-02-22 15:13 ` [PATCH 0/3] sched/rt fixes for 5.15, 5.10, 5.4 Petr Vorel
2024-02-22 15:36 ` Petr Vorel
2024-02-22 15:13 ` [PATCH 1/3] sched/rt: Fix sysctl_sched_rr_timeslice intial value Petr Vorel
2024-02-22 15:13 ` [PATCH 2/3] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset Petr Vorel
2024-02-22 15:13 ` [PATCH 3/3] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
2024-02-22 15:13 ` [PATCH 0/2] sched/rt fixes for 6.1 Petr Vorel
2024-02-22 15:13 ` [PATCH 1/2] sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset Petr Vorel
2024-02-22 15:13 ` [PATCH 2/2] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
2024-02-22 15:13 ` [PATCH 0/1] sched/rt fixes for 6.6 Petr Vorel
2024-02-22 15:13 ` [PATCH 1/1] sched/rt: Disallow writing invalid values to sched_rt_period_us Petr Vorel
2024-02-22 15:32 ` [PATCH 0/3] sched/rt fixes for 4.19 Greg Kroah-Hartman
2024-02-22 16:50 ` Petr Vorel
2024-02-22 17:19 ` Greg Kroah-Hartman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox