Re: [PATCH 0/9] Add CPU-type to topology

From: Brice Goglin
Date: Wed Jun 19 2024 - 17:26:09 EST


Le 19/06/2024 à 12:34, srinivas pandruvada a écrit :
On Tue, 2024-06-18 at 18:53 -0700, Pawan Gupta wrote:
On Tue, Jun 18, 2024 at 02:49:10PM +0200, Brice Goglin wrote:
Le 17/06/2024 à 11:11, Pawan Gupta a écrit :
Hi,

This series adds support for CPU-type (CPUID.1A.EAX[31-24] on
Intel) to
differentiate between hybrid variants P+E, P-only, E-only that
share the
same Family/Model/Stepping. One of the use case for CPU-type is
the
affected CPU table for CPU vulnerabilities, which can now use the
CPU-type
to filter the unaffected variants.

* Patch 1 adds cpu-type to CPU topology structure and introduces
   topology_cpu_type() to get the CPU-type.

* Patch 2-4 replaces usages of get_this_hybrid_cpu_type() with
   topology_cpu_type().

* Patch 5-7 Updates CPU-matching infrastructure to use CPU-type.

* Patch 8 cleans up the affected CPU list.

* Patch 9 uses the CPU-type to exclude P-only parts from the RFDS
affected
   list.

Hello

Is there still a plan to expose this info in sysfs?
Sure, if it helps userspace.

Userspace currently uses frequencies to guess which cores are E or
P.
Intel sent some patches several years ago [1], but they got
abandoned
nowhere as far as I know. There was also some discussion about
using a
"capacity" field like ARM does, but IIRC Intel didn't like the idea
in
the end.
There can be many ways to expose this information in sysfs. Like this
...

[1] https://lkml.org/lkml/2020/10/2/1208
... exposes /sys/devices/system/cpu/types which, in hybrid parts,
creates a
subdirectory for each type of CPU. Each subdirectory contains a CPU
list
and a CPU map that user space can query.

The other way is to expose the CPU-type in a file:

        /sys/devices/system/cpu/cpuN/type

that could return the CPU-type of the CPU N. Is there a preference?
But you still have to look at frequency or caches as there are Low
power E-cores which will have same type but different capabilities.


Good point. From this patch series, I understand that the current kernel side doesn't care about these different E-cores. However it might be good to expose them as different cpu-types (or better name) to userspace ?

Something like type 0 = P-core, 1 = normal E-core, 2 = low power E-core ?

Brice