From: Ingo Molnar <mingo@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Daniel Bristot de Oliveira <bristot@kernel.org>,
linux-kernel@vger.kernel.org, Ingo Molnar <mingo@redhat.com>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Valentin Schneider <vschneid@redhat.com>,
Joe Mario <jmario@redhat.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>
Subject: Re: [PATCH] sched/idle: Make idle poll dynamic per-cpu
Date: Mon, 16 Jan 2023 10:02:02 +0100 [thread overview]
Message-ID: <Y8USikoCYTBl7VFr@gmail.com> (raw)
In-Reply-To: <Y8UQdKx+004a28fL@hirez.programming.kicks-ass.net>
* Peter Zijlstra <peterz@infradead.org> wrote:
> On Thu, Jan 12, 2023 at 05:24:26PM +0100, Daniel Bristot de Oliveira wrote:
> > idle=poll is frequently used on ultra-low-latency systems. Examples of
> > such systems are high-performance trading and 5G NVRAM. The performance
> > gain is given by avoiding the idle driver machinery and by keeping the
> > CPU is always in an active state - avoiding (odd) hardware heuristics that
> > are out of the control of the OS.
> >
> > Currently, idle=poll is an all-or-nothing static option defined at
> > boot time. The motivation for creating this option dynamic and per-cpu
> > are two:
> >
> > 1) Reduce the power usage/heat by allowing only selected CPUs to
> > do idle polling;
> > 2) Allow multi-tenant systems (e.g., Kubernetes) to enable idle
> > polling only when ultra-low-latency applications are present
> > on specific CPUs.
> >
> > Joe Mario did some experiments with this option enabled, and the results
> > were significant. For example, by using dynamic idle polling on
> > selected CPUs, cyclictest performance is optimal (like when using
> > idle=poll), but cpu power consumption drops from 381 to 233 watts.
> >
> > Also, limiting idle=poll to the set of CPUs that benefits from
> > it allows other CPUs to benefit from frequency boosts. Joe also
> > shows that the results can be in the order of 80nsec round trip
> > improvement when system-wide idle=poll was not used.
> >
> > The user can enable idle polling with this command:
> > # echo 1 > /sys/devices/system/cpu/cpu{CPU_ID}/idle_poll
> >
> > And disable it via:
> > # echo 0 > /sys/devices/system/cpu/cpu{CPU_ID}/idle_poll
> >
> > By default, all CPUs have idle polling disabled (the current behavior).
> > A static key avoids the CPU mask check overhead when no idle polling
> > is enabled.
>
> Urgh, can we please make this a cpuidle governor thing or so? So that we
> don't need to invent new interfaces and such.
I think the desired property here would be to make this interface on top of
pretty much any governor. Ie. have a governor, but also a way to drop any
CPU into idle-poll, overriding that.
Thanks,
Ingo
next prev parent reply other threads:[~2023-01-16 9:06 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-12 16:24 [PATCH] sched/idle: Make idle poll dynamic per-cpu Daniel Bristot de Oliveira
2023-01-15 9:15 ` Ingo Molnar
2023-01-17 11:20 ` Daniel Bristot de Oliveira
2023-01-16 1:43 ` Chen Yu
2023-01-16 8:53 ` Peter Zijlstra
2023-01-16 9:02 ` Ingo Molnar [this message]
2023-01-16 9:28 ` Ingo Molnar
2023-01-16 9:51 ` Vincent Guittot
2023-01-16 10:11 ` Daniel Bristot de Oliveira
2023-01-16 10:06 ` Daniel Bristot de Oliveira
2023-01-16 11:54 ` Peter Zijlstra
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=Y8USikoCYTBl7VFr@gmail.com \
--to=mingo@kernel.org \
--cc=bristot@kernel.org \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=jmario@redhat.com \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rjw@rjwysocki.net \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.