[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2367709.KiRkWci6fx@aspire.rjw.lan>
Date: Wed, 26 Jul 2017 19:26:38 +0200
From: "Rafael J. Wysocki" <rjw@...ysocki.net>
To: Viresh Kumar <viresh.kumar@...aro.org>
Cc: Peter Zijlstra <peterz@...radead.org>,
Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>,
Len Brown <lenb@...nel.org>, Ingo Molnar <mingo@...hat.com>,
linux-pm@...r.kernel.org,
Vincent Guittot <vincent.guittot@...aro.org>,
smuckle.linux@...il.com, juri.lelli@....com,
Morten.Rasmussen@....com, patrick.bellasi@....com,
eas-dev@...ts.linaro.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH V3 1/3] sched: cpufreq: Allow remote cpufreq callbacks
On Wednesday, July 26, 2017 11:59:12 AM Viresh Kumar wrote:
> On 24-07-17, 15:47, Peter Zijlstra wrote:
> > I said nothing about the shared locking. That is indeed required. All I
> > said is that those two tests you add could be left out.
>
> I was right, I didn't understood your comment at all :(
>
> > > > That would then continue to process the iowait and other accounting
> > > > stuff, but stall the moment we call into the actual driver, which will
> > > > then drop the request on the floor as per the first few hunks.
> > >
> > > I am not sure I understood your comment completely though.
> >
> > Since we call cpufreq_update_util(@rq, ...) with @rq->lock held, all
> > such calls are in fact serialized for that cpu.
>
> Yes, they are serialized but ..
>
> > Therefore the cpu !=
> > current_cpu test you add are pointless.
>
> .. I didn't understand why you said so. This check isn't there to take
> care of serialization but remote callbacks.
>
> > Only once we get to the actual cpufreq driver (intel_pstate and others)
> > do we run into the fact that we might not be able to service the request
> > remotely.
>
> We never check for remote callbacks in drivers.
>
> > But since you also add a test there, that is sufficient.
>
> No.
>
> The diff for intel-pstate that you saw in this patch was for the case
> where intel-pstate works directly with the scheduler (i.e. no
> schedutil governor). The routine that gets called with schedutil is
> intel_cpufreq_target(), which doesn't check for remoteness at all.
And of course acpi-cpufreq doesn't check for that too, for example.
Thanks,
Rafael
Powered by blists - more mailing lists