From: Peter Zijlstra <peterz@infradead.org>
To: Atul Pant <quic_atulpant@quicinc.com>
Cc: mingo@redhat.com, juri.lelli@redhat.com,
vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de,
bristot@redhat.com, vschneid@redhat.com, rafael@kernel.org,
daniel.lezcano@linaro.org, kernel@quicinc.com,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org
Subject: Re: [RFC PATCH 0/2] Disable RT-throttling for idle-inject threads
Date: Wed, 10 Apr 2024 10:54:41 +0200 [thread overview]
Message-ID: <20240410085441.GA21455@noisy.programming.kicks-ass.net> (raw)
In-Reply-To: <20240410045417.3048209-1-quic_atulpant@quicinc.com>
On Wed, Apr 10, 2024 at 10:24:15AM +0530, Atul Pant wrote:
> 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 allow
> to keep the hot CPUs in the sleep state until we see improvement in
> temperature/power. If we set 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 consume some power.
>
> To solve this limitation, we propose a solution to disable RT-throttling
> whenever idle-inject threads run. We achieve this by not accounting the
> runtime for the idle-inject threads.
Running RT tasks for indefinite amounts of time will wreck the system.
Things like workqueues and other per-cpu threads expect service or
things will pile up and run to ground.
Idle injection, just like every other RT user must not be able to starve
the system of service.
If your system design requires this (I would argue it is broken), look
at other means, like CPU-hotplug (which I also really detest) -- which
takes down the CPU in a controlled manner and avoids the resource
issues.
next prev parent reply other threads:[~2024-04-10 8:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-10 4:54 [RFC PATCH 0/2] Disable RT-throttling for idle-inject threads Atul Pant
2024-04-10 4:54 ` [RFC PATCH 1/2] sched/rt: Disable runtime accounting for idle threads with SCHED_FIFO policy Atul Pant
2024-04-10 7:00 ` Daniel Bristot de Oliveira
2024-04-10 4:54 ` [RFC PATCH 2/2] sched/idle: Add a description for play_idle_precise Atul Pant
2024-04-10 8:54 ` Peter Zijlstra [this message]
2024-04-10 11:29 ` [RFC PATCH 0/2] Disable RT-throttling for idle-inject threads Atul Kumar Pant
2024-04-10 11:46 ` Peter Zijlstra
2024-04-10 12:24 ` Daniel Bristot de Oliveira
2024-04-10 13:29 ` Vincent Guittot
2024-04-10 13:31 ` Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240410085441.GA21455@noisy.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=daniel.lezcano@linaro.org \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=kernel@quicinc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=quic_atulpant@quicinc.com \
--cc=rafael@kernel.org \
--cc=rostedt@goodmis.org \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox