From: Phil Auld <pauld@redhat.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: linux-kernel@vger.kernel.org, Juri Lelli <juri.lelli@redhat.com>,
Ingo Molnar <mingo@redhat.com>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Valentin Schneider <vschneid@redhat.com>,
Ben Segall <bsegall@google.com>,
Steven Rostedt <rostedt@goodmis.org>,
Mel Gorman <mgorman@suse.de>
Subject: Re: [PATCH RESEND] sched/nohz: Add HRTICK_BW for using cfs bandwidth with nohz_full
Date: Thu, 18 May 2023 10:37:18 -0400 [thread overview]
Message-ID: <20230518143718.GC110197@lorien.usersys.redhat.com> (raw)
In-Reply-To: <20230518134746.GB2860939@hirez.programming.kicks-ass.net>
On Thu, May 18, 2023 at 03:47:46PM +0200 Peter Zijlstra wrote:
> On Thu, May 18, 2023 at 09:20:38AM -0400, Phil Auld wrote:
> > CFS bandwidth limits and NOHZ full don't play well together. Tasks
> > can easily run well past their quotas before a remote tick does
> > accounting. This leads to long, multi-period stalls before such
> > tasks can run again. Use the hrtick mechanism to set a sched
> > tick to fire at remaining_runtime in the future if we are on
> > a nohz full cpu, if the task has quota and if we are likely to
> > disable the tick (nr_running == 1). This allows for bandwidth
> > accounting before tasks go too far over quota.
> >
> > A number of container workloads use a dynamic number of real
> > nohz tasks but also have other work that is limited which ends
> > up running on the "spare" nohz cpus. This is an artifact of
> > having to specify nohz_full cpus at boot. Adding this hrtick
> > resolves the issue of long stalls on these tasks.
> >
> > Add the sched_feat HRTICK_BW off by default to allow users to
> > enable this only when needed.
>
> OMG; so because NOHZ_FULL configuration sucks, we add hacks on?
>
I suppose one could make that argument. The HRTICK mechanism is already
in place and used similarly for DL (and that also benefits nohz workloads).
I don't see NOHZ_FULL configuration getting better anytime soon, although
I think efforts are being made in that direction.
This seemed to be a sane way to handle what are effectively conflicting
requirements. Stalling a task to the point the host gets rebooted is
pretty painful. Maybe if we could fail the tick_stop test in this
case that would work but that would keep all the ticks whereas this
tries to respect the request for nohz as much as possible.
Thanks for taking a look :)
Cheers,
Phil
--
next prev parent reply other threads:[~2023-05-18 14:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-18 13:20 [PATCH RESEND] sched/nohz: Add HRTICK_BW for using cfs bandwidth with nohz_full Phil Auld
2023-05-18 13:47 ` Peter Zijlstra
2023-05-18 14:37 ` Phil Auld [this message]
2023-06-12 21:39 ` Phil Auld
2023-05-18 16:38 ` kernel test robot
2023-05-18 19:01 ` Phil Auld
2023-05-18 18:43 ` kernel test robot
2023-05-18 21:29 ` Benjamin Segall
2023-05-18 22:01 ` Phil Auld
2023-06-08 12:51 ` Phil Auld
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=20230518143718.GC110197@lorien.usersys.redhat.com \
--to=pauld@redhat.com \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.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=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