Re: Prevent RT-throttling for idle-injection threads

From: Steven Rostedt
Date: Fri Aug 11 2023 - 11:17:30 EST


On Tue, 8 Aug 2023 16:55:23 +0530
Atul Pant <quic_atulpant@xxxxxxxxxxx> wrote:

> Hi all,
> We are trying to implement a solution for thermal mitigation by using
> idle injection on CPUs. However we face some limitations with the current
> idle-inject framework. As per our need, we want to start injecting idle
> cycles on a CPU for indefinite time (until the temperature/power of the
> CPU falls below a threshold). This will help to keep the hot CPUs in the
> sleep state until we see improvement in temperature/power. If we set the
> idle duration to a large value or have an idle-injection ratio of 100%,
> then the idle-inject RT thread suffers from RT throttling. This results
> in the CPU exiting from the sleep state and consuming some power.
>
> The above situation can be avoided, if we can prevent RT throttling on
> the injected CPU. With the currently available sysctl parameters,
> sched_rt_runtime_us and sched_rt_period_us, we can prevent RT throttling
> by either setting sched_rt_runtime_us equal to sched_rt_period_us or,
> setting sched_rt_runtime_us to -1. Since these parameters are system
> wide, so it will affect the RT tasks on non idle-injected CPUs as well.
> To overcome this, will it be feasible to have these two parameters on a
> per CPU basis? This will allow to selectively disable RT throttling on
> idle-injected CPUs.

I wonder if the deadline scheduler that Daniel is working on would help in this case?

-- Steve