All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] RISC-V: ACPI: Add PPTT support
@ 2026-10-15  6:49 Sunil V L
  2026-10-15  6:49 ` [PATCH v2 1/4] tests/qtest/bios-tables-test: Allow PPTT for RISC-V Sunil V L
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Sunil V L @ 2026-10-15  6:49 UTC (permalink / raw)
  To: qemu-devel, qemu-riscv
  Cc: Palmer Dabbelt, Alistair Francis, Weiwei Li,
	Daniel Henrique Barboza, Liu Zhiwei, Chao Liu,
	Michael S . Tsirkin, Igor Mammedov, Ani Sinha, Anup Patel,
	Drew Fustini, Prajwal N, Shankar C, Sunil V L

Hi all,

This series adds ACPI Processor Properties Topology Table (PPTT) support to
the RISC-V virt machine. PPTT allows the guest to discover the processor and
cache topology exposed by the machine, which is useful for making better
scheduling and cache-management decisions.

The implementation describes the RISC-V virt cache hierarchy with separate
L1 instruction and data caches, followed by unified L2 and L3 caches. It also
enables the corresponding cache and cluster properties in the machine SMP
description and wires the generated PPTT into the existing ACPI table
build.

Unlike ARM, RISC-V doesn't have a way to discover the Cache
topology from registers. Hence, I am hardcoding default values for the
cache topology structures. These cache topology structures are added in
virt.c itself so that a future series can add support for DT as well. In
future, it can be enhanced to support vendor cpu/soc specific cache
information to override this default hardcoded cache details.

The series also updates the bios-tables-test data and removes the temporary
PPTT entry from the allowed-diff list. The generated table is 96 bytes and
describes the package, cluster, and processor hierarchy for the virt machine.

This work follows the discussion and earlier work shared here:
https://lists.gnu.org/archive/html/qemu-riscv/2024-01/msg00928.html

I have retained the contribution from Sia Jee Heng and added his
Signed-off-by tag to the relevant patch.

To enable cache structures in the PPTT, one should use similar to below
command line option.

-M virt,smp-cache.0.cache=l1d,smp-cache.0.topology=core,smp-cache.1.cache=l1i,smp-cache.1.topology=core,smp-cache.2.cache=l2,smp-cache.2.topology=cluster,smp-cache.3.cache=l3,smp-cache.3.topology=socket

lscpu -C in linux can be used to display these cache structures.

Changes from v1:
	1) Replaced loop with memcpy
	2) Made virt_caches static in virt.c
	3) Added Daniel's RB tags

Sunil V L (4):

Sunil V L (4):
  tests/qtest/bios-tables-test: Allow PPTT for RISC-V
  hw/riscv/virt: Add ACPI PPTT table
  tests/qtest/bios-tables-test: Update riscv64 virt PPTT golden
    reference
  MAINTAINERS: Update Sunil's email id

 MAINTAINERS                       |   2 +-
 hw/riscv/virt-acpi-build.c        |   7 ++++
 hw/riscv/virt.c                   |  51 ++++++++++++++++++++++++++++++
 include/hw/riscv/virt.h           |   4 +++
 tests/data/acpi/riscv64/virt/PPTT | Bin 0 -> 96 bytes
 5 files changed, 63 insertions(+), 1 deletion(-)
 create mode 100644 tests/data/acpi/riscv64/virt/PPTT

-- 
2.43.0



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-10-21  1:16 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-15  6:49 [PATCH v2 0/4] RISC-V: ACPI: Add PPTT support Sunil V L
2026-10-15  6:49 ` [PATCH v2 1/4] tests/qtest/bios-tables-test: Allow PPTT for RISC-V Sunil V L
2026-10-15  6:49 ` [PATCH v2 2/4] hw/riscv/virt: Add ACPI PPTT table Sunil V L
2026-10-15 16:56   ` Daniel Henrique Barboza
2026-10-15  6:49 ` [PATCH v2 3/4] tests/qtest/bios-tables-test: Update riscv64 virt PPTT golden reference Sunil V L
2026-10-15  6:49 ` [PATCH v2 4/4] MAINTAINERS: Update Sunil's email id Sunil V L
2026-10-20 22:29 ` [PATCH v2 0/4] RISC-V: ACPI: Add PPTT support Drew Fustini
2026-10-21  0:39   ` Daniel Henrique Barboza
2026-10-21  1:14     ` Jinjie Ruan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.