[libvirt] [PATCH 0/7] qemu: Be more cautious about allowed devices
by Michal Privoznik
As discussed here [1], it's unsafe to allow /dev/vfio/vfio to all the domains
(even those not doing PCI assignemnt). The same goes for /dev/dri/*.
1: https://www.redhat.com/archives/libvir-list/2017-February/msg00267.html
Michal Privoznik (7):
qemu_cgroup: Kill qemuSetupHostUSBDeviceCgroup
qemu_cgroup: Kill qemuSetupHostSCSIDeviceCgroup
qemu_cgroup: Kill qemuSetupHostSCSIVHostDeviceCgroup
qemuSetupHostdevCgroup: Use qemuDomainGetHostdevPath
qemuDomainGetHostdevPath: Create /dev/vfio/vfio iff needed
qemuDomainGetHostdevPath: Report /dev/vfio/vfio less frequently
qemu: Allow /dev/dri/render* for virgl domains
src/qemu/qemu.conf | 2 +-
src/qemu/qemu_cgroup.c | 311 +++++++++++--------------------------
src/qemu/qemu_domain.c | 207 ++++++++++++++++++++----
src/qemu/qemu_domain.h | 7 +
src/qemu/test_libvirtd_qemu.aug.in | 1 -
5 files changed, 274 insertions(+), 254 deletions(-)
--
2.11.0
7 years, 10 months
[libvirt] [PATCH] util: virvhba: fix typo that breaks build on non-linux systems
by Pavel Hrdina
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
Pushed as build breaker, found by ci.centos.org.
src/util/virvhba.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virvhba.c b/src/util/virvhba.c
index 3a052f7b2e..203ba43a3d 100644
--- a/src/util/virvhba.c
+++ b/src/util/virvhba.c
@@ -476,7 +476,7 @@ virVHBAPathExists(const char *sysfs_prefix ATTRIBUTE_UNUSED,
bool
-virVHBAVportIsCapable(const char *sysfs_prefix ATTRIBUTE_UNUSED,
+virVHBAIsVportCapable(const char *sysfs_prefix ATTRIBUTE_UNUSED,
int host ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS, "%s", _("Not supported on this platform"));
--
2.11.1
7 years, 10 months
[libvirt] [PATCH 00/15] Add more vHBA related tests and module-arize the code
by John Ferlan
Don't be scared off by the quantity of patches...
There's quite a bit of code motion and function renaming going on before
being able to more easily add tests that will ensure that from a nodedev
perspective creation and deletion of the vHBA will work properly and it's
possible to test the various ways to create a vHBA (nothing provide, a
parent by name provided, a parent by wwnn/wwpn provided, and a parent
by fabric_wwn provided).
I did run this through the coverity checking code with no errors...
John Ferlan (15):
tests: Alter test_driver HBA name/data to be closer to reality
test: Add new NPIV capable HBA and a vHBA
test: Add helper to create vHBA for testNodeDeviceCreateXML
tests: Create a more realistic vHBA
test: Fix fchosttest resource leak
util: Create a new virvhba module and move/rename API's
util: Move/rename virStoragePoolGetVhbaSCSIHostParent to virvhba
util: Reduce complexity of virVHBAGetParent
util: Move scsi_host specific functions from virutil
tests: Add new fchosttest tests for management of a vHBA
nodedev: Keep the node device lock longer in nodeDeviceDestroy
nodedev: Rework virNodeDeviceGetParentHost
tests: Add createVHBAByNodeDevice-no-parent to fchosttest
tests: Add createVHBAByNodeDevice-parent-wwn to fchosttest
tests: Add createVHBAByNodeDevice-parent-fabric-wwn to fchosttest
po/POTFILES.in | 2 +
src/Makefile.am | 2 +
src/conf/node_device_conf.c | 76 +++-
src/conf/node_device_conf.h | 19 +-
src/conf/storage_conf.c | 100 ++---
src/conf/storage_conf.h | 5 -
src/libvirt_private.syms | 32 +-
src/node_device/node_device_driver.c | 92 ++--
src/node_device/node_device_linux_sysfs.c | 24 +-
src/storage/storage_backend_scsi.c | 68 +--
src/test/test_driver.c | 178 ++++++--
src/util/virscsi.c | 4 +
src/util/virscsihost.c | 297 ++++++++++++
src/util/virscsihost.h | 40 ++
src/util/virutil.c | 724 ------------------------------
src/util/virutil.h | 47 --
src/util/virvhba.c | 591 ++++++++++++++++++++++++
src/util/virvhba.h | 59 +++
tests/fchosttest.c | 183 ++++++--
tests/objecteventtest.c | 6 +-
tests/scsihosttest.c | 16 +-
tests/virrandommock.c | 9 +
22 files changed, 1463 insertions(+), 1111 deletions(-)
create mode 100644 src/util/virscsihost.c
create mode 100644 src/util/virscsihost.h
create mode 100644 src/util/virvhba.c
create mode 100644 src/util/virvhba.h
--
2.7.4
7 years, 10 months
[libvirt] [PATCH] nodedev: fix build with clang
by Roman Bogorodskiy
Build fails with:
conf/node_device_conf.c:825:62: error: comparison of unsigned enum expression < 0 is always false [-Werror,-Wtautological-compare]
if ((data->drm.type = virNodeDevDRMTypeFromString(type)) < 0) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
conf/node_device_conf.c:1801:59: error: comparison of unsigned enum expression < 0 is always false [-Werror,-Wtautological-compare]
if ((type = virNodeDevDevnodeTypeFromString(tmp)) < 0) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
2 errors generated.
Fix by using intermediate variable to store the result similarly
to how it's done for other FromString* calls.
---
Pushed under the build-breaker rule.
src/conf/node_device_conf.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index b3063d9ec..c15c917a2 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -814,7 +814,7 @@ virNodeDevCapDRMParseXML(xmlXPathContextPtr ctxt,
virNodeDevCapDataPtr data)
{
xmlNodePtr orignode;
- int ret = -1;
+ int ret = -1, val;
char *type = NULL;
orignode = ctxt->node;
@@ -822,11 +822,12 @@ virNodeDevCapDRMParseXML(xmlXPathContextPtr ctxt,
type = virXPathString("string(./type[1])", ctxt);
- if ((data->drm.type = virNodeDevDRMTypeFromString(type)) < 0) {
+ if ((val = virNodeDevDRMTypeFromString(type)) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown drm type '%s' for '%s'"), type, def->name);
goto out;
}
+ data->drm.type = val;
ret = 0;
@@ -1791,6 +1792,7 @@ virNodeDeviceDefParseXML(xmlXPathContextPtr ctxt,
xmlNodePtr node = nodes[i];
char *tmp = virXMLPropString(node, "type");
virNodeDevDevnodeType type;
+ int val;
if (!tmp) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -1798,12 +1800,13 @@ virNodeDeviceDefParseXML(xmlXPathContextPtr ctxt,
goto error;
}
- if ((type = virNodeDevDevnodeTypeFromString(tmp)) < 0) {
+ if ((val = virNodeDevDevnodeTypeFromString(tmp)) < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unknown devnode type '%s'"), tmp);
VIR_FREE(tmp);
goto error;
}
+ type = val;
switch (type) {
case VIR_NODE_DEV_DEVNODE_DEV:
--
2.11.0
7 years, 10 months
[libvirt] [PATCH v2 00/12] qemu: migration: show disks stats for nbd migration
by Nikolay Shirokovskiy
diff from v1:
============
1. patch "qemu: clean out unused migrate to unix" is dropped
as it is already pushed.
2. a lot of refactoring patches added, namely all except
the last patch.
3. fetching mirroring stats is done separately from getting
migration status. Generally speaking refactorings patches
removes the function to fetch migrations status altogether.
Current migration stats will show something like [1] when in
the process of mirroring of non shared disks. This gives very
little info on the migration progress. Likewise completed stats miss
disks mirroring info.
This patch provides disks stats in the said phase like in [2] so
user can now understand what's going on. However data stats miss
memory stats, so data total and remaining will change when memory
migration starts.
AFAIU disks stats were available before the nbd based migration
becomes the default. So this patch returns disks stats back at
some level.
[1]
Job type: Unbounded
Time elapsed: 4964 ms
[2]
Job type: Unbounded
Time elapsed: 4964 ms
Data processed: 146.000 MiB
Data remaining: 854.000 MiB
Data total: 1000.000 MiB
File processed: 146.000 MiB
File remaining: 854.000 MiB
File total: 1000.000 MiB
Nikolay Shirokovskiy (12):
qemu: qemuDomainJobInfoToParams drop unused code
qemu: introduce qemu domain job status
qemu: introduce QEMU_DOMAIN_JOB_STATUS_POSTCOPY
qemu: drop QEMU_MIGRATION_COMPLETED_UPDATE_STATS
qemu: drop excessive zero-out in qemuMigrationFetchJobStatus
qemu: drop fetch and update status functions
qemu: simplify getting completed job stats
qemu: drop unused code in qemuDomainGetJobStatsInternal
qemu: drop fetch flag in qemuDomainGetJobStatsInternal
qemu: split getting stats for migration and others
qemu: introduce QEMU_DOMAIN_JOB_STATUS_PREPARE
qemu: show disks stats for nbd migration
docs/news.html.in | 4 +
src/qemu/qemu_domain.c | 32 ++++++--
src/qemu/qemu_domain.h | 13 +++-
src/qemu/qemu_driver.c | 100 ++++++++++++++----------
src/qemu/qemu_migration.c | 195 ++++++++++++++++++++++++++--------------------
src/qemu/qemu_migration.h | 8 +-
src/qemu/qemu_process.c | 6 +-
7 files changed, 214 insertions(+), 144 deletions(-)
--
1.8.3.1
7 years, 10 months
[libvirt] [PATCH] libvirt-override: fix flags mutually exclusize
by Jie Wang
As virDomainGetBlkioParameters is called in libvirt_virDomainSetBlkioParameters,
it will result in the two flags 'VIR_DOMAIN_AFFECT_LIVE' and 'VIR_DOMAIN_AFFECT_CONFIG'
are mutually exclusive in libvirt_virDomainSetBlkioParameters, it's unreasonable,
So ues this patch to fix it.
Signed-off-by: Jie Wang <wangjie88(a)huawei.com>
---
libvirt-override.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libvirt-override.c b/libvirt-override.c
index 9e40f00..7bdc09c 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -727,7 +727,7 @@ libvirt_virDomainSetBlkioParameters(PyObject *self ATTRIBUTE_UNUSED,
}
LIBVIRT_BEGIN_ALLOW_THREADS;
- i_retval = virDomainGetBlkioParameters(domain, NULL, &nparams, flags);
+ i_retval = virDomainGetBlkioParameters(domain, NULL, &nparams, 0);
LIBVIRT_END_ALLOW_THREADS;
if (i_retval < 0)
@@ -743,7 +743,7 @@ libvirt_virDomainSetBlkioParameters(PyObject *self ATTRIBUTE_UNUSED,
return PyErr_NoMemory();
LIBVIRT_BEGIN_ALLOW_THREADS;
- i_retval = virDomainGetBlkioParameters(domain, params, &nparams, flags);
+ i_retval = virDomainGetBlkioParameters(domain, params, &nparams, 0);
LIBVIRT_END_ALLOW_THREADS;
if (i_retval < 0) {
--
1.9.5.msysgit.1
7 years, 10 months
[libvirt] [PATCH resend v2 0/2] Allow saving QEMU libvirt state to a pipe
by Chen Hanxiao
This series introduce flag VIR_DOMAIN_SAVE_DIRECT
to enable command 'save' to write to PIPE.
Base upon patches from Roy Keene <rkeene(a)knightpoint.com>
with some fixes.
Change from original patch:
1) Check whether the specified path is a PIPE.
2) Rebase on upstream.
3) Add doc for virsh command
v2-resend:
rebase on upstream
v2:
rename VIR_DOMAIN_SAVE_PIPE to VIR_DOMAIN_SAVE_DIRECT
remove S_ISFIFO check
Chen Hanxiao (2):
qemu: Allow saving QEMU libvirt state to a pipe
virsh: introduce flage --direct for save command
include/libvirt/libvirt-domain.h | 1 +
src/qemu/qemu_driver.c | 54 ++++++++++++++++++++++++++--------------
tools/virsh-domain.c | 6 +++++
tools/virsh.pod | 5 +++-
4 files changed, 47 insertions(+), 19 deletions(-)
--
2.7.4
7 years, 10 months
[libvirt] [PATCH] qemu_capabilities: introduce QEMU_CAPS_SD_CARD to probe sd-card drivers
by Chen Hanxiao
From: Chen Hanxiao <chenhanxiao(a)gmail.com>
This patch introduces QEMU_CAPS_SD_CARD for probing
whether qemu support SD card by:
{"execute": "device-list-properties",
"arguments":{"typename":"sd-card"}}
It will be helpful for apps which used
cmd 'virsh domcaps` etc.
Also helpful for:
https://bugzilla.redhat.com/show_bug.cgi?id=1387218
Signed-off-by: Chen Hanxiao <chenhanxiao(a)gmail.com>
---
src/qemu/qemu_capabilities.c | 9 +++++++--
src/qemu/qemu_capabilities.h | 1 +
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 3247d25..b200b37 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -357,6 +357,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
"query-cpu-model-expansion", /* 245 */
"virtio-net.host_mtu",
+ "sd-card",
);
@@ -1624,6 +1625,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] = {
{ "ivshmem-plain", QEMU_CAPS_DEVICE_IVSHMEM_PLAIN },
{ "ivshmem-doorbell", QEMU_CAPS_DEVICE_IVSHMEM_DOORBELL },
{ "vhost-scsi", QEMU_CAPS_DEVICE_VHOST_SCSI },
+ { "sd-card", QEMU_CAPS_SD_CARD },
};
static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBalloon[] = {
@@ -5193,8 +5195,7 @@ virQEMUCapsFillDomainDeviceDiskCaps(virQEMUCapsPtr qemuCaps,
VIR_DOMAIN_CAPS_ENUM_SET(disk->bus,
VIR_DOMAIN_DISK_BUS_IDE,
VIR_DOMAIN_DISK_BUS_SCSI,
- VIR_DOMAIN_DISK_BUS_VIRTIO,
- /* VIR_DOMAIN_DISK_BUS_SD */);
+ VIR_DOMAIN_DISK_BUS_VIRTIO);
/* PowerPC pseries based VMs do not support floppy device */
if (!ARCH_IS_PPC64(qemuCaps->arch) ||
@@ -5203,6 +5204,10 @@ virQEMUCapsFillDomainDeviceDiskCaps(virQEMUCapsPtr qemuCaps,
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_USB_STORAGE))
VIR_DOMAIN_CAPS_ENUM_SET(disk->bus, VIR_DOMAIN_DISK_BUS_USB);
+
+ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SD_CARD))
+ VIR_DOMAIN_CAPS_ENUM_SET(disk->bus, VIR_DOMAIN_DISK_BUS_SD);
+
return 0;
}
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 95bb67d..85e7959 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -393,6 +393,7 @@ typedef enum {
/* 245 */
QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION, /* qmp query-cpu-model-expansion */
QEMU_CAPS_VIRTIO_NET_HOST_MTU, /* virtio-net-*.host_mtu */
+ QEMU_CAPS_SD_CARD, /* -sd abc.img */
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
--
2.7.4
7 years, 10 months
[libvirt] [PATCH] nodedev: Introduce new drm cap
by Michal Privoznik
After 7f1bdec5fa0a0cd25 our nodedev driver is capable of
determining DRM devices (DRM stands for Direct Render Manager not
Digital rights management). There is still one bit missing
though: virConnectListAllNodeDevices() is capable of listing
either all devices or just those with specified capability. Well,
DRM capability is missing there.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
include/libvirt/libvirt-nodedev.h | 1 +
src/conf/node_device_conf.c | 3 ++-
src/conf/node_device_conf.h | 3 ++-
src/libvirt-nodedev.c | 1 +
tools/virsh-nodedev.c | 7 +++++--
tools/virsh.pod | 6 +++---
6 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/include/libvirt/libvirt-nodedev.h b/include/libvirt/libvirt-nodedev.h
index 4ff8b416a..85003903d 100644
--- a/include/libvirt/libvirt-nodedev.h
+++ b/include/libvirt/libvirt-nodedev.h
@@ -78,6 +78,7 @@ typedef enum {
VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST = 1 << 9, /* FC Host Bus Adapter */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS = 1 << 10, /* Capable of vport */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC = 1 << 11, /* Capable of scsi_generic */
+ VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM = 1 << 12, /* DRM device */
} virConnectListAllNodeDeviceFlags;
int virConnectListAllNodeDevices (virConnectPtr conn,
diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index f996db115..b3063d9ec 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -2224,7 +2224,8 @@ virNodeDeviceMatch(virNodeDeviceObjPtr devobj,
MATCH(STORAGE) ||
MATCH(FC_HOST) ||
MATCH(VPORTS) ||
- MATCH(SCSI_GENERIC)))
+ MATCH(SCSI_GENERIC) ||
+ MATCH(DRM)))
return false;
}
diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h
index be7e0e003..40e930a28 100644
--- a/src/conf/node_device_conf.h
+++ b/src/conf/node_device_conf.h
@@ -340,7 +340,8 @@ void virNodeDeviceObjUnlock(virNodeDeviceObjPtr obj);
VIR_CONNECT_LIST_NODE_DEVICES_CAP_STORAGE | \
VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST | \
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS | \
- VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC)
+ VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC | \
+ VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM)
typedef bool (*virNodeDeviceObjListFilter)(virConnectPtr conn,
virNodeDeviceDefPtr def);
diff --git a/src/libvirt-nodedev.c b/src/libvirt-nodedev.c
index 6ea14b3e3..83376b0d9 100644
--- a/src/libvirt-nodedev.c
+++ b/src/libvirt-nodedev.c
@@ -97,6 +97,7 @@ virNodeNumOfDevices(virConnectPtr conn, const char *cap, unsigned int flags)
* VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST
* VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS
* VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC
+ * VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM
*
* Returns the number of node devices found or -1 and sets @devices to NULL in
* case of error. On success, the array stored into @devices is guaranteed to
diff --git a/tools/virsh-nodedev.c b/tools/virsh-nodedev.c
index 9ede96886..c69144021 100644
--- a/tools/virsh-nodedev.c
+++ b/tools/virsh-nodedev.c
@@ -414,7 +414,7 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
goto cleanup;
}
- switch (cap_type) {
+ switch ((virNodeDevCapType) cap_type) {
case VIR_NODE_DEV_CAP_SYSTEM:
flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM;
break;
@@ -451,7 +451,10 @@ cmdNodeListDevices(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED)
case VIR_NODE_DEV_CAP_SCSI_GENERIC:
flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC;
break;
- default:
+ case VIR_NODE_DEV_CAP_DRM:
+ flags |= VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM;
+ break;
+ case VIR_NODE_DEV_CAP_LAST:
break;
}
}
diff --git a/tools/virsh.pod b/tools/virsh.pod
index a47040984..90f4b5a1f 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -3072,9 +3072,9 @@ List all of the devices available on the node that are known by libvirt.
I<cap> is used to filter the list by capability types, the types must be
separated by comma, e.g. --cap pci,scsi, valid capability types include
'system', 'pci', 'usb_device', 'usb', 'net', 'scsi_host', 'scsi_target',
-'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic'. If I<--tree> is
-used, the output is formatted in a tree representing parents of each node.
-I<cap> and I<--tree> are mutually exclusive.
+'scsi', 'storage', 'fc_host', 'vports', 'scsi_generic', 'drm'.If I<--tree>
+is used, the output is formatted in a tree representing parents of each
+node. I<cap> and I<--tree> are mutually exclusive.
=item B<nodedev-reattach> I<nodedev>
--
2.11.0
7 years, 10 months
[libvirt] [PATCH 0/5] Add rendernode selection support
by marcandre.lureau@redhat.com
From: Marc-André Lureau <marcandre.lureau(a)redhat.com>
Hi,
The following series implements DRM nodedev, exposes the devices /dev
path and symlinks, and allows to configure qemu to use a specific DRM
rendernode. (also included a small unrelated cosmetic change)
thanks!
Marc-André Lureau (5):
nodedev: fix extra space in dump
nodedev: add <devnode> paths
nodedev: parse <path>
nodedev: add drm capability
qemu: add rendernode argument
docs/formatdomain.html.in | 7 +-
docs/formatnode.html.in | 16 ++++
docs/schemas/domaincommon.rng | 5 +
docs/schemas/nodedev.rng | 30 ++++++
src/conf/domain_conf.c | 28 +++++-
src/conf/domain_conf.h | 1 +
src/conf/node_device_conf.c | 102 ++++++++++++++++++++-
src/conf/node_device_conf.h | 27 ++++++
src/node_device/node_device_driver.c | 1 +
src/node_device/node_device_udev.c | 72 +++++++++++++++
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 10 ++
tests/nodedevschemadata/drm_renderD129.xml | 10 ++
...ge_serial_3600c0ff000d7a2a5d463ff4902000000.xml | 4 +
tests/nodedevxml2xmltest.c | 2 +
.../qemuxml2argv-video-virtio-gpu-spice-gl.args | 2 +-
.../qemuxml2argv-video-virtio-gpu-spice-gl.xml | 2 +-
tests/qemuxml2argvtest.c | 1 +
.../qemuxml2xmlout-video-virtio-gpu-spice-gl.xml | 2 +-
20 files changed, 315 insertions(+), 10 deletions(-)
create mode 100644 tests/nodedevschemadata/drm_renderD129.xml
--
2.11.0.295.gd7dffce1c.dirty
7 years, 10 months