Re: [PATCH v2, RESEND] sched/rt: Try to restart rt period timer when rt runtime exceeded

From: Lihua (lihua, ran)
Date: Mon Dec 06 2021 - 20:38:59 EST



在 2021/12/3 15:17, Greg KH 写道:
On Fri, Dec 03, 2021 at 03:36:18AM +0000, Li Hua wrote:
When rt_runtime is modified from -1 to a valid control value, it may
cause the task to be throttled all the time. Operations like the following
will trigger the bug. E.g:
1. echo -1 > /proc/sys/kernel/sched_rt_runtime_us
2. Run a FIFO task named A that executes while(1)
3. echo 950000 > /proc/sys/kernel/sched_rt_runtime_us

When rt_runtime is -1, The rt period timer will not be activated when task
A enqueued. And then the task will be throttled after setting rt_runtime to
950,000. The task will always be throttled because the rt period timer is
not activated.

Reported-by: Hulk Robot <hulkci@xxxxxxxxxx>
Signed-off-by: Li Hua <hucool.lihua@xxxxxxxxxx>
---
v1->v2:
- call do_start_rt_bandwidth to reduce repetitive code.
- use raw_spin_lock_irqsave to avoid deadlock on a timer context.
---
kernel/sched/rt.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree. Please read:
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.
I did not CC: stable in the signed-off region,Is that so?
</formletter>
.