Re: Prevent RT-throttling for idle-injection threads

From: Atul Kumar Pant
Date: Fri Sep 08 2023 - 05:58:24 EST


On Fri, Aug 11, 2023 at 11:17:19AM -0400, Steven Rostedt wrote:
> 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?

Are you referring to this thread regarding SCHED_DEADLINE server?
https://lore.kernel.org/all/cover.1686239016.git.bristot@xxxxxxxxxx/T/#u

>
> -- Steve
>