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(-)
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(-)
--
2.34.1
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
On Sun, 1 Jun 2025 08:32:52 -0400 "Michael S. Tsirkin" <mst@redhat.com> wrote: > 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. Hi Micheal, I am trying to reproduce this issue. I have applied the patchset on the master branch now, and then run: make check-qtest-loongarch64 V=2 -j, but I don't seem to get any diffs on the binaries, and all tests passed. May I know if that's how you noticed the problem? Thanks, Alireza > > > > -- > > 2.34.1 > >
On 2025/6/3 下午11:40, Alireza Sanaee via wrote: > On Sun, 1 Jun 2025 08:32:52 -0400 > "Michael S. Tsirkin" <mst@redhat.com> wrote: > >> 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. > Hi Micheal, > > I am trying to reproduce this issue. I have applied the > patchset on the master branch now, and then run: > make check-qtest-loongarch64 V=2 -j, but I don't seem to get any diffs > on the binaries, and all tests passed. It is an host endian issue, only happens on big endian host machine such as S390x :( And there is problem on LoongArch virt machine code about endian setting. Regards Bibo Mao > > May I know if that's how you noticed the problem? > > Thanks, > Alireza >> >> >>> -- >>> 2.34.1 >> >> >
© 2016 - 2025 Red Hat, Inc.