Re: [RFC PATCH v3 10/10] arch_topology: Start Energy Aware Scheduling

From: Juri Lelli
Date: Tue Jun 19 2018 - 06:31:16 EST


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.