On 1/21/22 11:21, Peter Krempa wrote:
On Thu, Jan 20, 2022 at 10:52:16 -0300, Daniel Henrique Barboza wrote:
The pnv-phb3 device is the pcie-root controller for PowerNV8 domains.
Add its QEMU capability so Libvirt can recognize it.
Signed-off-by: Daniel Henrique Barboza <danielhb413@xxxxxxxxx>
---
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_capabilities.h | 1 +
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 1 +
6 files changed, 7 insertions(+)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index a4cea7b90e..a1012d4795 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -658,6 +658,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
/* 420 */
"device.json+hotplug", /* QEMU_CAPS_DEVICE_JSON */
"pnv-phb3-root-port", /* QEMU_CAPS_DEVICE_PNV_PHB3_ROOT_PORT */
+ "pnv-phb3", /* QEMU_CAPS_DEVICE_PNV_PHB3 */
Can the latter exist without the former? I'm trying to see whether it
we can't assume that QEMU_CAPS_DEVICE_PNV_PHB3 is supported if
QEMU_CAPS_DEVICE_PNV_PHB3_ROOT_PORT or vice versa to not add
capabilities that are redundant.
Makes sense. Yes, the root-port is dependent of the pnv-phb support. We can check
for QEMU_CAPS_DEVICE_PNV_PHB3 and assume that QEMU_CAPS_DEVICE_PNV_PHB3_ROOT_PORT is
supported.
I believe it's a matter of adding just this capability and then, in
virQEMUCapsObjectTypes[], do something like this to allow for both devices be bound
to the same cap:
@@ -1358,6 +1359,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
{ "s390-pv-guest", QEMU_CAPS_S390_PV_GUEST },
{ "virtio-mem-pci", QEMU_CAPS_DEVICE_VIRTIO_MEM_PCI },
+ { "pnv-phb3-root-port", QEMU_CAPS_DEVICE_PNV_PHB3 },
+ { "pnv-phb3", QEMU_CAPS_DEVICE_PNV_PHB3 },
};
This is a change that reflects on the pnv-phb4 devices so I'll also change those
patches accordingly.
Thanks,
Daniel