On 2025/6/3 下午11:40, Alireza Sanaee via wrote:
On Sun, 1 Jun 2025 08:32:52 -0400
"Michael S. Tsirkin" <m...@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





Reply via email to