Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sched/rt: Change the type of 'sysctl_sched_rt_period' from 'unsigned int' to 'int'

Doing this matches the natural type of 'int' based calculus
in sched_rt_handler(), and also enables the adding in of a
correct upper bounds check on the sysctl interface.

[ mingo: Rewrote the changelog. ]

Signed-off-by: Yajun Deng <yajun.deng@linux.dev>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20231008021538.3063250-1-yajun.deng@linux.dev

authored by

Yajun Deng and committed by
Ingo Molnar
089768df f4bb5705

+4 -4
+3 -3
kernel/sched/rt.c
··· 16 16 * period over which we measure -rt task CPU usage in us. 17 17 * default: 1s 18 18 */ 19 - unsigned int sysctl_sched_rt_period = 1000000; 19 + int sysctl_sched_rt_period = 1000000; 20 20 21 21 /* 22 22 * part of the period that we allow rt tasks to run in us. ··· 34 34 { 35 35 .procname = "sched_rt_period_us", 36 36 .data = &sysctl_sched_rt_period, 37 - .maxlen = sizeof(unsigned int), 37 + .maxlen = sizeof(int), 38 38 .mode = 0644, 39 39 .proc_handler = sched_rt_handler, 40 40 .extra1 = SYSCTL_ONE, ··· 47 47 .mode = 0644, 48 48 .proc_handler = sched_rt_handler, 49 49 .extra1 = SYSCTL_NEG_ONE, 50 - .extra2 = SYSCTL_INT_MAX, 50 + .extra2 = (void *)&sysctl_sched_rt_period, 51 51 }, 52 52 { 53 53 .procname = "sched_rr_timeslice_ms",
+1 -1
kernel/sched/sched.h
··· 105 105 106 106 extern void call_trace_sched_update_nr_running(struct rq *rq, int count); 107 107 108 - extern unsigned int sysctl_sched_rt_period; 108 + extern int sysctl_sched_rt_period; 109 109 extern int sysctl_sched_rt_runtime; 110 110 extern int sched_rr_timeslice; 111 111