]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
sched/rt: sysctl_sched_rr_timeslice show default timeslice after reset
authorCyril Hrubis <chrubis@suse.cz>
Wed, 2 Aug 2023 15:19:06 +0000 (17:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Mar 2024 12:21:42 +0000 (13:21 +0100)
commit c1fc6484e1fb7cc2481d169bfef129a1b0676abe upstream.

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>
Cc: Mahmoud Adam <mngyadam@amazon.com>
Link: https://lore.kernel.org/r/20230802151906.25258-3-chrubis@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/sched/rt.c

index 7045595aacac6dcf94238cd4f84fa1ab05469614..2481219100afea6d49624a53b9b78a9e595dc7b5 100644 (file)
@@ -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);