On 6/8/25 22:44, Andrea Righi via Devel wrote: > Introduce apci-generic-initiator device to the domain XML. > > Example definition: > > <acpi-generic-initiator> > <pci-dev>dev0</pci-dev> > <numa-node>1</numa-node> > </acpi-generic-initiator> > > This enables partitioning of PCI resources into multiple isolated > instances, each requiring a dedicated NUMA node definition, that can be > represented by the acpi-generic-initiator object. > > Signed-off-by: Andrea Righi <ari...@nvidia.com> > --- > src/ch/ch_domain.c | 1 + > src/conf/domain_conf.c | 122 ++++++++++++++++++++++++++++-- > src/conf/domain_conf.h | 5 +- > src/conf/domain_postparse.c | 1 + > src/conf/domain_validate.c | 37 +++++++++ > src/conf/schemas/domaincommon.rng | 7 +- > src/hyperv/hyperv_driver.c | 1 + > src/libxl/libxl_driver.c | 6 ++ > src/lxc/lxc_driver.c | 6 ++ > src/qemu/qemu_alias.c | 11 +++ > src/qemu/qemu_command.c | 1 + > src/qemu/qemu_domain.c | 2 + > src/qemu/qemu_domain_address.c | 4 + > src/qemu/qemu_driver.c | 3 + > src/qemu/qemu_hotplug.c | 5 ++ > src/qemu/qemu_postparse.c | 1 + > src/qemu/qemu_validate.c | 1 + > src/test/test_driver.c | 4 + > 18 files changed, 205 insertions(+), 13 deletions(-) >
> diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c > index e89cdee487..573bbc282c 100644 > --- a/src/qemu/qemu_domain_address.c > +++ b/src/qemu/qemu_domain_address.c > @@ -471,6 +471,7 @@ qemuDomainDeviceSupportZPCI(virDomainDeviceDef *device) > case VIR_DOMAIN_DEVICE_AUDIO: > case VIR_DOMAIN_DEVICE_CRYPTO: > case VIR_DOMAIN_DEVICE_PSTORE: > + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: > break; > > case VIR_DOMAIN_DEVICE_NONE: > @@ -819,6 +820,9 @@ > qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDef *dev, > return pciFlags; > } > > + case VIR_DOMAIN_DEVICE_ACPI_INITIATOR: > + return pciFlags; > + This doesn't make much sense to me. In QEMU this is just an object, not a device. IOW, it's not 'guest visible' and thus doesn't connect to any bus really. > case VIR_DOMAIN_DEVICE_MEMBALLOON: > switch (dev->data.memballoon->model) { > case VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO_TRANSITIONAL: Michal