qemu/include
Ankit Agrawal 0a5b5acdf2 hw/acpi: Implement the SRAT GI affinity structure
ACPI spec provides a scheme to associate "Generic Initiators" [1]
(e.g. heterogeneous processors and accelerators, GPUs, and I/O devices with
integrated compute or DMA engines GPUs) with Proximity Domains. This is
achieved using Generic Initiator Affinity Structure in SRAT. During bootup,
Linux kernel parse the ACPI SRAT to determine the PXM ids and create a NUMA
node for each unique PXM ID encountered. Qemu currently do not implement
these structures while building SRAT.

Add GI structures while building VM ACPI SRAT. The association between
device and node are stored using acpi-generic-initiator object. Lookup
presence of all such objects and use them to build these structures.

The structure needs a PCI device handle [2] that consists of the device BDF.
The vfio-pci device corresponding to the acpi-generic-initiator object is
located to determine the BDF.

[1] ACPI Spec 6.3, Section 5.2.16.6
[2] ACPI Spec 6.3, Table 5.80

Cc: Jonathan Cameron <qemu-devel@nongnu.org>
Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Cedric Le Goater <clg@redhat.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Ankit Agrawal <ankita@nvidia.com>
Message-Id: <20240308145525.10886-3-ankita@nvidia.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2024-03-12 17:56:55 -04:00
..
authz
block virtio: Re-enable notifications after drain 2024-02-07 21:51:03 +01:00
chardev chardev: use bool for fe_is_open 2024-01-12 13:23:48 +00:00
crypto crypto: Modify the qcrypto_block_create to support creation flags 2024-02-09 12:50:37 +00:00
disas disas: introduce show_opcodes 2024-03-06 12:35:51 +00:00
exec target-arm queue: 2024-03-05 13:54:54 +00:00
fpu fpu: Add conversions between bfloat16 and [u]int8 2023-09-16 14:57:15 +00:00
gdbstub gdbstub: Call gdbserver_fork() both in parent and in child 2024-03-06 12:35:19 +00:00
hw hw/acpi: Implement the SRAT GI affinity structure 2024-03-12 17:56:55 -04:00
io io: Add generic pwritev/preadv interface 2024-03-01 15:42:04 +08:00
libdecnumber Replace config-time define HOST_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
migration migration/qemu-file: add utility methods for working with seekable channels 2024-03-01 15:42:04 +08:00
monitor monitor: add more *_locked() functions 2023-05-25 10:18:33 +02:00
net qapi: Move @String out of common.json to discourage reuse 2024-02-12 10:04:32 +01:00
qapi qerror: QERR_DEVICE_IN_USE is no longer used, drop 2024-03-09 18:56:37 +03:00
qemu plugins: remove non per_vcpu inline operation from API 2024-03-06 12:35:46 +00:00
qom include/qom/object.h: New OBJECT_DEFINE_SIMPLE_TYPE{, _WITH_INTERFACES} macros 2024-02-27 13:01:42 +00:00
scsi hw/ufs: Support for UFS logical unit 2023-09-07 14:01:29 -04:00
semihosting * util/log: re-allow switching away from stderr log file 2023-10-09 10:11:18 -04:00
standard-headers hw/virtio: Add support for VDPA network simulation devices 2024-03-12 17:56:55 -04:00
sysemu hw/acpi: Implement the SRAT GI affinity structure 2024-03-12 17:56:55 -04:00
tcg tcg: Increase width of temp_subindex 2024-02-13 07:42:45 -10:00
ui include: Clean up includes 2024-01-30 21:20:20 +03:00
user {linux,bsd}-user: Introduce get_task_state() 2024-03-06 12:35:19 +00:00
elf.h util: spelling fixes 2023-08-31 19:47:43 +02:00
glib-compat.h compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
qemu-io.h
qemu-main.h ui/cocoa: Run qemu_init in the main thread 2022-09-23 14:36:33 +02:00