Re: [RFC PATCH v3 10/10] arch_topology: Start Energy Aware Scheduling
From: Quentin Perret
Date: Tue Jun 19 2018 - 06:49:34 EST
On Tuesday 19 Jun 2018 at 12:31:08 (+0200), Juri Lelli wrote:
> On 19/06/18 11:25, Quentin Perret wrote:
> > On Tuesday 19 Jun 2018 at 12:19:01 (+0200), Juri Lelli wrote:
> > > On 19/06/18 11:02, Quentin Perret wrote:
> > > > On Tuesday 19 Jun 2018 at 11:47:14 (+0200), Juri Lelli wrote:
> > > > > On 19/06/18 10:40, Quentin Perret wrote:
> > > > > > Hi Pavan,
> > > > > >
> > > > > > On Tuesday 19 Jun 2018 at 14:48:41 (+0530), Pavan Kondeti wrote:
> > > > >
> > > > > [...]
> > > > >
> > > > > > > There seems to be a sysfs interface exposed by this driver to change cpu_scale.
> > > > > > > Should we worry about it? I don't know what is the usecase for changing the
> > > > > > > cpu_scale from user space.
> > > > > >
> > > > > > This is something I've been wondering as well. TBH, I'm not sure what to
> > > > > > do in this case. And I'm not sure to know what is the use-case either.
> > > > > > Debugging purpose I assume ?
> > > > > >
> > > > > > Juri, did you have a specific use-case for this feature when the
> > > > > > arch_topology driver was first introduced ? Or was it just to align
> > > > > > with the existing arm/arm64 code ?
> > > > >
> > > > > It was requested (IIRC) because DT might have bogus values and not be
> > > > > easily modifiable. So, this is another way to get things right for your
> > > > > platform at runtime.
> > > >
> > > > Right, but that also allows you to set different capacities to CPUs
> > > > inside the same freq domain, which isn't supported by the EM framework,
> > > > at least for now. So I would prefer to assume that your values in DT must
> > > > to be correct to use EAS, and leave the code as-is for now.
> > >
> > > It's actually built on the (current) assumption that siblings share
> > > capacity [1], so it seems to align with what EM requires.
> > >
> > > [1] https://elixir.bootlin.com/linux/latest/source/drivers/base/arch_topology.c#L71
> >
> > But there is not hard guarantee that the core_sibling mask and the
> > frequency domains are aligned :-(
> >
> > Hikey 620 is an example where they might be misaligned (I think)
>
> Yep. In this case you'd need to write cpu_capacity twice (for each
> cluster). I think.
Ok, I'll keep the code as-is for now, and we can discuss further on v4.
I guess we need to agree on the need for em_rescale_cpu_capacity() before
going too deep in the Arm-specific changes to call it :-)
Thanks !
Quentin