nodedev: Revert auto-start property for mdevs

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 9d4cd1d1cd.

Revert "nodedev: support auto-start property for mdevs"
This reverts commit 42a5585499.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Jonathon Jongsma 2021-05-26 10:40:26 -05:00 committed by Michal Privoznik
parent 3e0f552dab
commit 70f53b1c04
12 changed files with 4 additions and 87 deletions

View File

@ -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>

View File

@ -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"/>

View File

@ -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)",

View File

@ -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;
};

View File

@ -848,8 +848,6 @@ virNodeDeviceGetSCSIHostCaps;
virNodeDeviceGetSCSITargetCaps;
virNodeDeviceGetWWNs;
virNodeDeviceUpdateCaps;
virNodeDevMdevStartTypeFromString;
virNodeDevMdevStartTypeToString;
# conf/node_device_event.h

View File

@ -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;

View File

@ -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'/>

View File

@ -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>

View File

@ -0,0 +1 @@
../nodedevschemadata/mdev_3627463d_b7f0_4fea_b468_f1da537d301b.xml

View File

@ -4,7 +4,6 @@
<capability type='mdev'>
<type id='i915-GVTg_V5_8'/>
<uuid>d069d019-36ea-4111-8f0a-8c9a70e21366</uuid>
<start type='manual'/>
<iommuGroup number='0'/>
</capability>
</device>

View File

@ -3,7 +3,6 @@
<parent>pci_0000_00_02_0</parent>
<capability type='mdev'>
<type id='i915-GVTg_V5_8'/>
<start type='manual'/>
<iommuGroup number='0'/>
<attr name='example-attribute-1' value='attribute-value-1'/>
<attr name='example-attribute-2' value='attribute-value-2'/>

View File

@ -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>

View File

@ -0,0 +1 @@
../nodedevschemadata/mdev_ee0b88c4_f554_4dc1_809d_b2a01e8e48ad.xml

View File

@ -3,7 +3,6 @@
<parent>pci_0000_00_02_0</parent>
<capability type='mdev'>
<type id='i915-GVTg_V5_8'/>
<start type='manual'/>
<iommuGroup number='0'/>
<attr name='example-attribute' value='attribute-value'/>
</capability>