[PATCH 0/4] drivers core: Introduce CPU type sysfs interface

From: Ricardo Neri
Date: Fri Oct 02 2020 - 21:15:54 EST


Hybrid CPU topologies combine processors with more than one type of
micro-architecture. Hence, it is possible that individual CPUs support
slightly different features (e.g., performance counters) and different
performance properties. Thus, there may be user space entities interested
in knowing the topology of the system based on the types of available
CPUs.

Currently, there exists an interface for the CPU capacity (/sys/devices/
system/cpu/cpuX/cpu_capacity). However, CPU capacity does not always map
to CPU types (by the way, I will submit a separate series to bring such
interface to x86).

This series proposes the new interface /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.

Patch 1 of the series proposes the generic interface, with hooks
that architectures can override to suit their needs. The three patches
patches implement such interface for x86 (as per request from Boris,
I pulled patch 2 from a separate submission [1]).

Thanks and BR,
Ricardo

[1]. https://lkml.org/lkml/2020/10/2/1013

Ricardo Neri (4):
drivers core: Introduce CPU type sysfs interface
x86/cpu: Describe hybrid CPUs in cpuinfo_x86
x86/cpu/intel: Add function to get name of hybrid CPU types
x86/cpu/topology: Implement the CPU type sysfs interface

.../ABI/testing/sysfs-devices-system-cpu | 13 ++
arch/x86/include/asm/intel-family.h | 4 +
arch/x86/include/asm/processor.h | 13 ++
arch/x86/include/asm/topology.h | 2 +
arch/x86/kernel/cpu/common.c | 3 +
arch/x86/kernel/cpu/cpu.h | 3 +
arch/x86/kernel/cpu/intel.c | 23 ++
arch/x86/kernel/cpu/topology.c | 23 ++
drivers/base/cpu.c | 214 ++++++++++++++++++
include/linux/cpu.h | 12 +
include/linux/cpuhotplug.h | 1 +
11 files changed, 311 insertions(+)

--
2.17.1