[PATCH] perf: arm_spe: Support heterogeneous ACPI systems

Johnny Fan johnny.fan at cixtech.com
Thu Oct 15 20:24:23 PDT 2026


On Thu, Oct 15, 2026 at 03:19:26PM +0100, Leo Yan wrote:
> The SPE driver probes its capabilities on one CPU selected by
> smp_call_function_any(), then performs local setup on every CPU in
> supported_cpus. It therefore relies on that mask being accurate;
> including a CPU without SPE could lead to accesses to unimplemented
> SPE system registers.

Right. On ACPI the driver gets no affinity information for this
device, so supported_cpus falls back to cpu_possible_mask. That only
works today because registration is limited to homogeneous systems.
The PMSVer trimming in this patch works around the heterogeneous case;
with the mask taken from the MADT walk, both go away.

> There is also a grouping question for SPE and TRBE. If all participating
> CPUs implement the feature, but have different capabilities, should ACPI
> registration create separate platform devices for the compatible CPU
> groups? DT can describe separate CPU subsets using PPI partitions [1].
> 

That ACPI cannot describe: the GICC only carries a per-CPU interrupt
number, so CPUs with different capabilities reporting the same GSI
cannot be told apart, short of probing PMSVer. Such a split would have
to come from hardware wiring each group to a distinct PPI. For now I'd
keep it to a single GSI, and leave grouping to be revisited if hardware
that needs it ever shows up.

Thanks,
Johnny



More information about the linux-arm-kernel mailing list