Re: [PATCH v2] arch_topology: Make cpu_capacity sysfs node as ready-only

From: Quentin Perret
Date: Wed Mar 27 2019 - 06:56:48 EST


Hi,

On Friday 08 Mar 2019 at 18:08:48 (+0530), Lingutla Chandrasekhar wrote:
> If user updates any cpu's cpu_capacity, then the new value is going to
> be applied to all its online sibling cpus. But this need not to be correct
> always, as sibling cpus (in ARM, same micro architecture cpus) would have
> different cpu_capacity with different performance characteristics.
> So updating the user supplied cpu_capacity to all cpu siblings
> is not correct.
>
> And another problem is, current code assumes that 'all cpus in a cluster
> or with same package_id (core_siblings), would have same cpu_capacity'.
> But with commit '5bdd2b3f0f8 ("arm64: topology: add support to remove
> cpu topology sibling masks")', when a cpu hotplugged out, the cpu
> information gets cleared in its sibling cpus. So user supplied
> cpu_capacity would be applied to only online sibling cpus at the time.
> After that, if any cpu hot plugged in, it would have different cpu_capacity
> than its siblings, which breaks the above assumption.
>
> So instead of mucking around the core sibling mask for user supplied
> value, use device-tree to set cpu capacity. And make the cpu_capacity
> node as read-only to know the assymetry between cpus in the system.
> While at it, remove cpu_scale_mutex usage, which used for sysfs write
> protection.
>
> Tested-by: Dietmar Eggemann <dietmar.eggemann@xxxxxxx>
> Acked-by: Sudeep Holla <sudeep.holla@xxxxxxx>
> Signed-off-by: Lingutla Chandrasekhar <clingutla@xxxxxxxxxxxxxx>

Reviewed-by: Quentin Perret <quentin.perret@xxxxxxx>
Tested-by: Quentin Perret <quentin.perret@xxxxxxx>

Thanks for doing this,
Quentin