Re: [PATCH v7 02/15] sched/core: uclamp: Enforce last task UCLAMP_MAX

From: Peter Zijlstra
Date: Wed Mar 13 2019 - 13:29:21 EST


On Wed, Mar 13, 2019 at 04:20:51PM +0000, Patrick Bellasi wrote:
> On 13-Mar 15:10, Peter Zijlstra wrote:
> > On Fri, Feb 08, 2019 at 10:05:41AM +0000, Patrick Bellasi wrote:
> > > +uclamp_idle_value(struct rq *rq, unsigned int clamp_id, unsigned int clamp_value)
> > > +{
> > > + /*
> > > + * Avoid blocked utilization pushing up the frequency when we go
> > > + * idle (which drops the max-clamp) by retaining the last known
> > > + * max-clamp.
> > > + */
> > > + if (clamp_id == UCLAMP_MAX) {
> > > + rq->uclamp_flags |= UCLAMP_FLAG_IDLE;
> > > + return clamp_value;
> > > + }
> > > +
> > > + return uclamp_none(UCLAMP_MIN);
> >
> > That's a very complicated way or writing: return 0, right?
>
> In my mind it's just a simple way to hardcode values in just one place.
>
> In the current implementation uclamp_none(UCLAMP_MIN) is 0 and the
> compiler is not in trubles to inline a 0 there.
>
> Is it really so disgusting ?

Not disguisting per se, just complicated. It had me go back and check
wth uclamp_none() did again.