[libvirt PATCH 2/2] nodedev: Revert auto-start property for mdevs

Jonathon Jongsma jjongsma at redhat.com
Wed May 26 15:40:26 UTC 2021


We supported autostart of node devices via an xml element, but this
is not consistent with other libvirt objects which use an explicit API
for setting autostart status. So revert this and implement it as an
official API in a future commit.

The initial support was refactored after merging, so this commit reverts
both of those previous commits.

Revert "virNodeDevCapMdevParseXML: Use virXMLPropEnum() for ./start/@type"
This reverts commit 9d4cd1d1cda84aa15b77a506f2ad6362a74edf1a.

Revert "nodedev: support auto-start property for mdevs"
This reverts commit 42a558549935336cbdb7cbfe8b239ffb0e3442e3.
---
 docs/formatnode.html.in                       | 10 ---------
 docs/schemas/nodedev.rng                      | 11 ----------
 src/conf/node_device_conf.c                   | 21 +------------------
 src/conf/node_device_conf.h                   | 12 -----------
 src/libvirt_private.syms                      |  2 --
 src/node_device/node_device_driver.c          |  7 +------
 .../mdevctl-list-multiple.out.xml             |  4 ----
 ...v_3627463d_b7f0_4fea_b468_f1da537d301b.xml | 10 +--------
 ...v_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml | 11 +---------
 9 files changed, 4 insertions(+), 84 deletions(-)
 mode change 100644 => 120000 tests/nodedevxml2xmlout/mdev_3627463d_b7f0_4fea_b468_f1da537d301b.xml
 mode change 100644 => 120000 tests/nodedevxml2xmlout/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml

diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in
index 9a505f0fe9..3b3c3105d4 100644
--- a/docs/formatnode.html.in
+++ b/docs/formatnode.html.in
@@ -388,16 +388,6 @@
               <dd>
                 This element represents the UUID of the mediated device.
               </dd>
-              <dt><code>start</code></dt>
-              <dd>
-                This element represents the start policy for the device.  It
-                has a required attribute <code>type</code>, which can have a
-                value of <code>auto</code> or <code>manual</code>. Mediated
-                devices with an <code>auto</code> start type will be started
-                automatically by the host when the parent device becomes
-                available (either on boot, or when the parent device is
-                attached). Otherwise the device must be started manually.
-              </dd>
             </dl>
           </dd>
           <dt><code>ccw</code></dt>
diff --git a/docs/schemas/nodedev.rng b/docs/schemas/nodedev.rng
index 660cbda3be..777227c38a 100644
--- a/docs/schemas/nodedev.rng
+++ b/docs/schemas/nodedev.rng
@@ -622,17 +622,6 @@
           </attribute>
         </element>
       </optional>
-      <optional>
-        <element name="start">
-          <attribute name="type">
-            <choice>
-              <value>manual</value>
-              <value>auto</value>
-            </choice>
-          </attribute>
-          <empty/>
-        </element>
-      </optional>
       <optional>
         <element name="uuid">
           <ref name="UUID"/>
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index af72e160a5..332b12f997 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -85,12 +85,6 @@ VIR_ENUM_IMPL(virNodeDevDRM,
               "render",
 );
 
-VIR_ENUM_IMPL(virNodeDevMdevStart,
-              VIR_NODE_DEV_MDEV_START_LAST,
-              "manual",
-              "auto",
-);
-
 static int
 virNodeDevCapsDefParseString(const char *xpath,
                              xmlXPathContextPtr ctxt,
@@ -534,8 +528,6 @@ virNodeDeviceCapMdevDefFormat(virBuffer *buf,
 
     virBufferEscapeString(buf, "<type id='%s'/>\n", data->mdev.type);
     virBufferEscapeString(buf, "<uuid>%s</uuid>\n", data->mdev.uuid);
-    virBufferEscapeString(buf, "<start type='%s'/>\n",
-                          virNodeDevMdevStartTypeToString(data->mdev.start));
     virBufferAsprintf(buf, "<iommuGroup number='%u'/>\n",
                       data->mdev.iommuGroupNumber);
 
@@ -1157,6 +1149,7 @@ virNodeDevCapStorageParseXML(xmlXPathContextPtr ctxt,
                 return -1;
             }
             storage->removable_media_size = val;
+
             ctxt->node = orignode2;
         } else {
             virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -1919,7 +1912,6 @@ virNodeDevCapMdevParseXML(xmlXPathContextPtr ctxt,
     g_autofree xmlNodePtr *attrs = NULL;
     size_t i;
     g_autofree char *uuidstr = NULL;
-    xmlNodePtr startNode = NULL;
 
     ctxt->node = node;
 
@@ -1941,17 +1933,6 @@ virNodeDevCapMdevParseXML(xmlXPathContextPtr ctxt,
         virUUIDFormat(uuidbuf, mdev->uuid);
     }
 
-    mdev->start = VIR_NODE_DEV_MDEV_START_MANUAL;
-
-    startNode = virXPathNode("./start[1]", ctxt);
-    if (startNode &&
-        virXMLPropEnumDefault(startNode, "type",
-                              virNodeDevMdevStartTypeFromString,
-                              VIR_XML_PROP_NONE, &mdev->start,
-                              VIR_NODE_DEV_MDEV_START_MANUAL) < 0) {
-        return -1;
-    }
-
     /* 'iommuGroup' is optional, only report an error if the supplied value is
      * invalid (-2), not if it's missing (-1) */
     if (virXPathUInt("number(./iommuGroup[1]/@number)",
diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h
index 1a31133c4c..a60562e4fe 100644
--- a/src/conf/node_device_conf.h
+++ b/src/conf/node_device_conf.h
@@ -124,17 +124,6 @@ typedef enum {
 
 VIR_ENUM_DECL(virNodeDevDRM);
 
-typedef enum {
-    /* Keep in sync with VIR_ENUM_IMPL in node_device_conf.c */
-    VIR_NODE_DEV_MDEV_START_MANUAL,
-    VIR_NODE_DEV_MDEV_START_AUTO,
-
-    VIR_NODE_DEV_MDEV_START_LAST
-} virNodeDevMdevStartType;
-
-VIR_ENUM_DECL(virNodeDevMdevStart);
-
-
 typedef struct _virNodeDevCapSystemHardware virNodeDevCapSystemHardware;
 struct _virNodeDevCapSystemHardware {
     char *vendor_name;
@@ -162,7 +151,6 @@ struct _virNodeDevCapMdev {
     char *type;
     unsigned int iommuGroupNumber;
     char *uuid;
-    virNodeDevMdevStartType start;
     virMediatedDeviceAttr **attributes;
     size_t nattributes;
 };
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 333cca0b41..0ced2a7990 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -848,8 +848,6 @@ virNodeDeviceGetSCSIHostCaps;
 virNodeDeviceGetSCSITargetCaps;
 virNodeDeviceGetWWNs;
 virNodeDeviceUpdateCaps;
-virNodeDevMdevStartTypeFromString;
-virNodeDevMdevStartTypeToString;
 
 
 # conf/node_device_event.h
diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
index a9f605715b..8a0a2c3847 100644
--- a/src/node_device/node_device_driver.c
+++ b/src/node_device/node_device_driver.c
@@ -615,8 +615,7 @@ nodeDeviceDefToMdevctlConfig(virNodeDeviceDef *def, char **buf)
     if (virJSONValueObjectAppendString(json, "mdev_type", mdev->type) < 0)
         return -1;
 
-    if (virJSONValueObjectAppendString(json, "start",
-                                       virNodeDevMdevStartTypeToString(mdev->start)) < 0)
+    if (virJSONValueObjectAppendString(json, "start", "manual") < 0)
         return -1;
 
     if (mdev->attributes) {
@@ -1015,8 +1014,6 @@ nodeDeviceParseMdevctlChildDevice(const char *parent,
     mdev->uuid = g_strdup(uuid);
     mdev->type =
         g_strdup(virJSONValueObjectGetString(props, "mdev_type"));
-    mdev->start =
-        virNodeDevMdevStartTypeFromString(virJSONValueObjectGetString(props, "start"));
 
     attrs = virJSONValueObjectGet(props, "attrs");
 
@@ -1686,8 +1683,6 @@ nodeDeviceDefCopyFromMdevctl(virNodeDeviceDef *dst,
         dstmdev->uuid = g_strdup(srcmdev->uuid);
     }
 
-    dstmdev->start = srcmdev->start;
-
     if (virMediatedDeviceAttrsCopy(dstmdev, srcmdev))
         ret = true;
 
diff --git a/tests/nodedevmdevctldata/mdevctl-list-multiple.out.xml b/tests/nodedevmdevctldata/mdevctl-list-multiple.out.xml
index 83a3010455..cf7e966256 100644
--- a/tests/nodedevmdevctldata/mdevctl-list-multiple.out.xml
+++ b/tests/nodedevmdevctldata/mdevctl-list-multiple.out.xml
@@ -4,7 +4,6 @@
   <capability type='mdev'>
     <type id='i915-GVTg_V5_4'/>
     <uuid>200f228a-c80a-4d50-bfb7-f5a0e4e34045</uuid>
-    <start type='manual'/>
     <iommuGroup number='0'/>
   </capability>
 </device>
@@ -14,7 +13,6 @@
   <capability type='mdev'>
     <type id='i915-GVTg_V5_4'/>
     <uuid>de807ffc-1923-4d5f-b6c9-b20ecebc6d4b</uuid>
-    <start type='auto'/>
     <iommuGroup number='0'/>
   </capability>
 </device>
@@ -24,7 +22,6 @@
   <capability type='mdev'>
     <type id='i915-GVTg_V5_8'/>
     <uuid>435722ea-5f43-468a-874f-da34f1217f13</uuid>
-    <start type='manual'/>
     <iommuGroup number='0'/>
     <attr name='testattr' value='42'/>
   </capability>
@@ -35,7 +32,6 @@
   <capability type='mdev'>
     <type id='vfio_ap-passthrough'/>
     <uuid>783e6dbb-ea0e-411f-94e2-717eaad438bf</uuid>
-    <start type='manual'/>
     <iommuGroup number='0'/>
     <attr name='assign_adapter' value='5'/>
     <attr name='assign_adapter' value='6'/>
diff --git a/tests/nodedevxml2xmlout/mdev_3627463d_b7f0_4fea_b468_f1da537d301b.xml b/tests/nodedevxml2xmlout/mdev_3627463d_b7f0_4fea_b468_f1da537d301b.xml
deleted file mode 100644
index 30dda60e87..0000000000
--- a/tests/nodedevxml2xmlout/mdev_3627463d_b7f0_4fea_b468_f1da537d301b.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<device>
-  <name>mdev_3627463d_b7f0_4fea_b468_f1da537d301b</name>
-  <parent>computer</parent>
-  <capability type='mdev'>
-    <type id='mtty-1'/>
-    <start type='manual'/>
-    <iommuGroup number='12'/>
-  </capability>
-</device>
diff --git a/tests/nodedevxml2xmlout/mdev_3627463d_b7f0_4fea_b468_f1da537d301b.xml b/tests/nodedevxml2xmlout/mdev_3627463d_b7f0_4fea_b468_f1da537d301b.xml
new file mode 120000
index 0000000000..cbc883e48c
--- /dev/null
+++ b/tests/nodedevxml2xmlout/mdev_3627463d_b7f0_4fea_b468_f1da537d301b.xml
@@ -0,0 +1 @@
+../nodedevschemadata/mdev_3627463d_b7f0_4fea_b468_f1da537d301b.xml
\ No newline at end of file
diff --git a/tests/nodedevxml2xmlout/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml b/tests/nodedevxml2xmlout/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml
deleted file mode 100644
index 1988ffa679..0000000000
--- a/tests/nodedevxml2xmlout/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<device>
-  <name>mdev_ee0b88c4-f554-4dc1-809d-b2a01e8e48ad</name>
-  <path>/sys/devices/vfio_ap/matrix/mdev_ee0b88c4-f554-4dc1-809d-b2a01e8e48ad</path>
-  <parent>ap_matrix</parent>
-  <capability type='mdev'>
-    <type id='vfio_ap-passthrough'/>
-    <start type='manual'/>
-    <iommuGroup number='0'/>
-  </capability>
-</device>
diff --git a/tests/nodedevxml2xmlout/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml b/tests/nodedevxml2xmlout/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml
new file mode 120000
index 0000000000..238bfb4dfd
--- /dev/null
+++ b/tests/nodedevxml2xmlout/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml
@@ -0,0 +1 @@
+../nodedevschemadata/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml
\ No newline at end of file
-- 
2.31.1




More information about the libvir-list mailing list