[libvirt] [PATCHv3 11/13] qemu: add capabilities bit for device xio3130-downstream

Laine Stump laine at laine.org
Sat Jul 25 19:58:35 UTC 2015


The downstream ports of an x3130-upstream switch can each have one of
these plugged into them (and that is the only place they can be
connected). Each xio3130-downstream provides a single PCIe port that
can have PCI or PCIe devices hotplugged into it. Apparently an entire
set of x3130-upstream + several xio3130-downstreams can be hotplugged
as a unit, but it's not clear to me yet how that would be done, since
qemu only allows attaching a single device at a time.

This device will be used to implement the "pcie-switch-port" model of
pci controller.
---
change for V2: rebase

 src/qemu/qemu_capabilities.c                  | 2 ++
 src/qemu/qemu_capabilities.h                  | 1 +
 tests/qemucapabilitiesdata/caps_1.2.2-1.caps  | 1 +
 tests/qemucapabilitiesdata/caps_1.3.1-1.caps  | 1 +
 tests/qemucapabilitiesdata/caps_1.4.2-1.caps  | 1 +
 tests/qemucapabilitiesdata/caps_1.5.3-1.caps  | 1 +
 tests/qemucapabilitiesdata/caps_1.6.0-1.caps  | 1 +
 tests/qemucapabilitiesdata/caps_1.6.50-1.caps | 1 +
 tests/qemucapabilitiesdata/caps_2.1.1-1.caps  | 1 +
 tests/qemuhelptest.c                          | 6 ++++--
 10 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index c2ec46d..54f51c1 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -290,6 +290,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
               "migration-event",
               "ioh3420",
               "x3130-upstream",
+              "xio3130-downstream",
     );
 
 
@@ -1572,6 +1573,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
     { "pci-serial", QEMU_CAPS_DEVICE_PCI_SERIAL },
     { "ioh3420", QEMU_CAPS_DEVICE_IOH3420 },
     { "x3130-upstream", QEMU_CAPS_DEVICE_X3130_UPSTREAM },
+    { "xio3130-downstream", QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM },
 };
 
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBlk[] = {
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index e677065..2429ff7 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -233,6 +233,7 @@ typedef enum {
     QEMU_CAPS_MIGRATION_EVENT    = 191, /* MIGRATION event */
     QEMU_CAPS_DEVICE_IOH3420     = 192, /* -device ioh3420 */
     QEMU_CAPS_DEVICE_X3130_UPSTREAM = 193, /* -device x3130-upstream */
+    QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM = 194, /* -device xio3130-downstream */
 
     QEMU_CAPS_LAST,                   /* this must always be the last item */
 } virQEMUCapsFlags;
diff --git a/tests/qemucapabilitiesdata/caps_1.2.2-1.caps b/tests/qemucapabilitiesdata/caps_1.2.2-1.caps
index 78d7b82..ba16635 100644
--- a/tests/qemucapabilitiesdata/caps_1.2.2-1.caps
+++ b/tests/qemucapabilitiesdata/caps_1.2.2-1.caps
@@ -122,4 +122,5 @@
     <flag name='qxl-vga.vgamem_mb'/>
     <flag name='ioh3420'/>
     <flag name='x3130-upstream'/>
+    <flag name='xio3130-downstream'/>
   </qemuCaps>
diff --git a/tests/qemucapabilitiesdata/caps_1.3.1-1.caps b/tests/qemucapabilitiesdata/caps_1.3.1-1.caps
index 7cec7f9..51cd6d9 100644
--- a/tests/qemucapabilitiesdata/caps_1.3.1-1.caps
+++ b/tests/qemucapabilitiesdata/caps_1.3.1-1.caps
@@ -137,4 +137,5 @@
     <flag name='pci-serial'/>
     <flag name='ioh3420'/>
     <flag name='x3130-upstream'/>
+    <flag name='xio3130-downstream'/>
   </qemuCaps>
diff --git a/tests/qemucapabilitiesdata/caps_1.4.2-1.caps b/tests/qemucapabilitiesdata/caps_1.4.2-1.caps
index f5f0034..03d0a3e 100644
--- a/tests/qemucapabilitiesdata/caps_1.4.2-1.caps
+++ b/tests/qemucapabilitiesdata/caps_1.4.2-1.caps
@@ -138,4 +138,5 @@
     <flag name='pci-serial'/>
     <flag name='ioh3420'/>
     <flag name='x3130-upstream'/>
+    <flag name='xio3130-downstream'/>
   </qemuCaps>
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3-1.caps b/tests/qemucapabilitiesdata/caps_1.5.3-1.caps
index 9f0461a..e2f22e4 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3-1.caps
+++ b/tests/qemucapabilitiesdata/caps_1.5.3-1.caps
@@ -147,4 +147,5 @@
     <flag name='pci-serial'/>
     <flag name='ioh3420'/>
     <flag name='x3130-upstream'/>
+    <flag name='xio3130-downstream'/>
   </qemuCaps>
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0-1.caps b/tests/qemucapabilitiesdata/caps_1.6.0-1.caps
index 1b23b82..874a050 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0-1.caps
+++ b/tests/qemucapabilitiesdata/caps_1.6.0-1.caps
@@ -153,4 +153,5 @@
     <flag name='pci-serial'/>
     <flag name='ioh3420'/>
     <flag name='x3130-upstream'/>
+    <flag name='xio3130-downstream'/>
   </qemuCaps>
diff --git a/tests/qemucapabilitiesdata/caps_1.6.50-1.caps b/tests/qemucapabilitiesdata/caps_1.6.50-1.caps
index ff0427f..dd3bcda 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.50-1.caps
+++ b/tests/qemucapabilitiesdata/caps_1.6.50-1.caps
@@ -153,4 +153,5 @@
     <flag name='pci-serial'/>
     <flag name='ioh3420'/>
     <flag name='x3130-upstream'/>
+    <flag name='xio3130-downstream'/>
   </qemuCaps>
diff --git a/tests/qemucapabilitiesdata/caps_2.1.1-1.caps b/tests/qemucapabilitiesdata/caps_2.1.1-1.caps
index 56b27e5..3ee2d6f 100644
--- a/tests/qemucapabilitiesdata/caps_2.1.1-1.caps
+++ b/tests/qemucapabilitiesdata/caps_2.1.1-1.caps
@@ -169,4 +169,5 @@
     <flag name='pci-serial'/>
     <flag name='ioh3420'/>
     <flag name='x3130-upstream'/>
+    <flag name='xio3130-downstream'/>
   </qemuCaps>
diff --git a/tests/qemuhelptest.c b/tests/qemuhelptest.c
index 62b9a0c..8f317d4 100644
--- a/tests/qemuhelptest.c
+++ b/tests/qemuhelptest.c
@@ -755,7 +755,8 @@ mymain(void)
             QEMU_CAPS_SPLASH_TIMEOUT,
             QEMU_CAPS_DEVICE_IVSHMEM,
             QEMU_CAPS_DEVICE_IOH3420,
-            QEMU_CAPS_DEVICE_X3130_UPSTREAM);
+            QEMU_CAPS_DEVICE_X3130_UPSTREAM,
+            QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM);
     DO_TEST("qemu-1.1.0", 1001000, 0, 0,
             QEMU_CAPS_VNC_COLON,
             QEMU_CAPS_NO_REBOOT,
@@ -857,7 +858,8 @@ mymain(void)
             QEMU_CAPS_SPLASH_TIMEOUT,
             QEMU_CAPS_DEVICE_IVSHMEM,
             QEMU_CAPS_DEVICE_IOH3420,
-            QEMU_CAPS_DEVICE_X3130_UPSTREAM);
+            QEMU_CAPS_DEVICE_X3130_UPSTREAM,
+            QEMU_CAPS_DEVICE_XIO3130_DOWNSTREAM);
     DO_TEST_FULL("qemu-1.2.0", 1002000, 0, 0, VIR_ERR_CONFIG_UNSUPPORTED,
             QEMU_CAPS_LAST);
     DO_TEST_FULL("qemu-kvm-1.2.0", 1002000, 1, 0, VIR_ERR_CONFIG_UNSUPPORTED,
-- 
2.1.0




More information about the libvir-list mailing list