Re: [PATCH 6/7] thermal: netlink: Add a new event to notify CPU capabilities change

From: Srinivas Pandruvada
Date: Tue Nov 09 2021 - 09:15:39 EST


On Tue, 2021-11-09 at 13:53 +0000, Lukasz Luba wrote:
> Hi Srinivas,
>
> On 11/9/21 1:23 PM, Srinivas Pandruvada wrote:
> > Hi Lukasz,
> >
> > On Tue, 2021-11-09 at 12:39 +0000, Lukasz Luba wrote:
> > > Hi Ricardo,
> > >
> > >
> > > On 11/6/21 1:33 AM, Ricardo Neri wrote:
> > > > From: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>
> > > >
> > > > Add a new netlink event to notify change in CPU capabilities in
> > > > terms of
> > > > performance and efficiency.
> > >
> > > Is this going to be handled by some 'generic' tools? If yes,
> > > maybe
> > > the values for 'performance' might be aligned with capacity
> > > [0,1024] ? Or are they completely not related so the mapping is
> > > simply impossible?
> > >
> >
> > That would have been very useful.
> >
> > The problem is that we may not know the maximum performance as
> > system
> > may be booting with few CPUs (using maxcpus kernel command line)
> > and
> > then user hot adding them. So we may need to rescale when we get a
> > new
> > maximum performance CPU and send to user space.
> >
> > We can't just use max from HFI table at in instance as it is not
> > necessary that HFI table contains data for all CPUs.
> >
> > If HFI max performance value of 255 is a scaled value to max
> > performance CPU value in the system, then this conversion would
> > have
> > been easy. But that is not.
>
> I see. I was asking because I'm working on similar interface and
> just wanted to understand your approach better. In my case we
> would probably simply use 'capacity' scale, or more
> precisely available capacity after subtracting 'thermal pressure'
> value.
> That might confuse a generic tool which listens to these socket
> messages, though. So probably I would have to add a new
> THERMAL_GENL_ATTR_CPU_CAPABILITY_* id
> to handle this different normalized across CPUs scale.
I can add a field capacity_scale. In HFI case it will always be 255. In
your cases it will 1024.