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:
- echo -1 > /proc/sys/kernel/sched_rt_runtime_us
- Run a FIFO task named A that executes while(1)
- 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@huawei.com Signed-off-by: Li Hua hucool.lihua@huawei.com
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.
</formletter>