From: Qais Yousef <qyousef@layalina.io>
To: Saravana Kannan <saravanak@google.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
David Dai <davidai@google.com>, Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.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>,
Qais Yousef <qyousef@google.com>,
Quentin Perret <qperret@google.com>,
kernel-team@android.com, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH v1] sched/uclamp: Introduce SCHED_FLAG_RESET_UCLAMP_ON_FORK flag
Date: Thu, 20 Apr 2023 18:49:12 +0100 [thread overview]
Message-ID: <20230420174912.lma5ytra6rxhssng@airbuntu> (raw)
In-Reply-To: <CAGETcx-suryHeB3wpaTSZBiw6+VwA7pe=GnrbtizSVj+C9Smtg@mail.gmail.com>
On 04/20/23 09:25, Saravana Kannan wrote:
> On Thu, Apr 20, 2023 at 6:44 AM Vincent Guittot
> <vincent.guittot@linaro.org> wrote:
> >
> > On Thu, 20 Apr 2023 at 11:37, Dietmar Eggemann <dietmar.eggemann@arm.com> wrote:
> > >
> > > On 20/04/2023 03:11, David Dai wrote:
> > > > On Tue, Apr 18, 2023 at 10:18 PM Dietmar Eggemann
> > > > <dietmar.eggemann@arm.com> wrote:
> > > >>
> > > >
> > > > Hi Dietmar, thanks for your time,
> > > >
> > > >> On 16/04/2023 23:34, David Dai wrote:
> > > >>> A userspace service may manage uclamp dynamically for individual tasks and
> > > >>> a child task will unintentionally inherit a pesudo-random uclamp setting.
> > > >>> This could result in the child task being stuck with a static uclamp value
> > > >>
> > > >> Could you explain this with a little bit more detail? Why isn't the
> > > >> child task also managed by the userspace service?
> > > >
> > > > See Qais’ reply that contains more detail on how it’s being used in
> > > > Android. In general, if a dynamic userspace service will adjust uclamp
> > > > on the fly for a given task, but has no knowledge or control over if
> > > > or when a task forks. Depending on the timing of the fork, a child
> > > > task may inherit a very large or a small uclamp_min or uclamp_max
> > > > value. The intent of this patch is to provide more flexibility to the
> > > > uclamp APIs such that child tasks do not get stuck with a poor uclamp
> > > > value when spawned while retaining other sched attributes. When
> > > > RESET_ON_FORK is set on the parent task, it will reset uclamp values
> > > > for the child but also reset other sched attributes as well.
> > >
> > > OK, in this case, why not just change behavior and always reset the
> > > uclamp values at fork?
> > >
> > > Do we anticipate a use-case in which uclamp inheritance would be required?
> > >
> > > Let's not over-complicate the sched_[sg]etattr() unnecessarily.
> >
> > I was about to ask the same question and I'm aligned with Dietmar.
> > Use RESET_ON_FORK and set all attributes
>
> That's racy though. If we have an external service (that's only
> responsible for setting uclamp) setting all the attributes, the forked
> thread could also be trying to set some of the attributes. Also, how
> is this external service going to keep track of all the threads being
> forked and set the right attributes for all of them?
I didn't understand what Vincent is suggesting. But based on your response it
seems we are supposed to track all the forks and reset everything. If we can
track all the forks and reset everything, then why use RESET_ON_FORK even or
rely on the kernel do anything actually..
This also smells like a hack.
Cheers
--
Qais Yousef
next prev parent reply other threads:[~2023-04-20 17:49 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-16 21:34 David Dai
2023-04-19 5:18 ` Dietmar Eggemann
2023-04-20 1:11 ` David Dai
2023-04-20 9:37 ` Dietmar Eggemann
2023-04-20 13:44 ` Vincent Guittot
2023-04-20 16:25 ` Saravana Kannan
2023-04-20 17:49 ` Qais Yousef [this message]
2023-04-21 15:10 ` Vincent Guittot
2023-04-28 11:44 ` Qais Yousef
2023-04-20 16:22 ` Saravana Kannan
2023-04-20 17:37 ` Qais Yousef
2023-04-19 17:54 ` Qais Yousef
2023-04-19 22:49 ` Saravana Kannan
2023-04-20 13:38 ` Qais Yousef
2023-04-28 11:57 ` Qais Yousef
2023-04-28 18:12 ` Saravana Kannan
2023-05-03 13:29 ` Qais Yousef
2023-05-03 15:55 ` Saravana Kannan
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=20230420174912.lma5ytra6rxhssng@airbuntu \
--to=qyousef@layalina.io \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=davidai@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=qperret@google.com \
--cc=qyousef@google.com \
--cc=rostedt@goodmis.org \
--cc=saravanak@google.com \
--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
all inboxes | Powered by JetHome®