On Fri, May 23, 2025 at 11:26:50AM +0100, Alireza Sanaee wrote: > OS like Linux is using PPTT processor node's identical implementation > flag [1] to infer whether the whole system or a certain CPU cluster is > homogeneous or not [2]. QEMU currently only support building homogeneous > system, set the flag to indicate the fact. Build a root node in PPTT for > indicates the identical implementation which is needed for a > multi-socket system. Update the related PPTT tables as well. > > [1] ACPI 6.5 Table 5.158: Processor Structure Flags > [2] > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/acpi/pptt.c?h=v6.11-rc1#n810 > > History: > * v4->v5: fixed a typo > > * v3->v4: PPTT rev to 2 > > * v2->v3: rebase to 10 > > Alireza Sanaee (2): > hw/acpi/aml-build: Build a root node in the PPTT table > tests: virt: Update expected ACPI tables for virt test > > Yicong Yang (2): > tests: virt: Allow changes to PPTT test table > hw/acpi/aml-build: Set identical implementation flag for PPTT > processor nodes > > hw/acpi/aml-build.c | 24 +++++++++++++++--- > tests/data/acpi/aarch64/virt/PPTT | Bin 76 -> 96 bytes > .../data/acpi/aarch64/virt/PPTT.acpihmatvirt | Bin 156 -> 176 bytes > tests/data/acpi/aarch64/virt/PPTT.topology | Bin 336 -> 356 bytes > 4 files changed, 20 insertions(+), 4 deletions(-)
This interacts weirdly with loongarch. I tried applying patches on top of that, and on loongarch, I see: -[0F0h 0240 004h] Flags (decoded below) : 00000000 +[0F0h 0240 004h] Flags (decoded below) : 0000000E Physical package : 0 - ACPI Processor ID valid : 0 - Processor is a thread : 0 - Node is a leaf : 0 + ACPI Processor ID valid : 1 + Processor is a thread : 1 + Node is a leaf : 1 Identical Implementation : 0 I'm sending a pull request later today. Once merged, pls rebase on top of that, updating loongarch as appropriate and repost copying relevant people. Cc Bibo Mao for more insight. > -- > 2.34.1