[libvirt] [PATCHv2 0/3] exposing busy polling support for vhost-net
by sferdjao@redhat.com
From: Sahid Orentino Ferdjaoui <sahid.ferdjaoui(a)redhat.com>
In version 2.7.0, QEMU introduced support of busy polling for
vhost-net [0]. To avoid paraphrasing original authors of that feature
and the purpose it I prefer to share a pointer [1].
This patch serie exposes throught the NIC driver-specific element a
new option 'poll_us'. That option is only available with the backend
driver 'vhost' and that because libvirt automatically fallback to QEMU
if the driver is not specified where that option is not available.
The option 'poll_us' takes a positive. 0 means that the option
is not going to be exposed.
[0] 69e87b32680a41d9761191443587c595b6f5fc3f
[1] https://lists.gnu.org/archive/html/qemu-devel/2016-11/msg04595.html
Sahid Orentino Ferdjaoui (3):
qemu: detect support for vhost-net busy polling
conf: introduce 'poll_us' attribute for domain interface
This patch finalizes support of 'poll_us' attribute as an option of
the NIC driver-specific element, the commit also takes care of
hotplug.
docs/formatdomain.html.in | 12 +++++++-
docs/schemas/domaincommon.rng | 5 ++++
src/conf/domain_conf.c | 16 +++++++++++
src/conf/domain_conf.h | 1 +
src/qemu/qemu_capabilities.c | 5 ++++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 28 ++++++++++++++++++
src/qemu/qemu_hotplug.c | 12 ++++++++
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 +
.../qemuxml2argv-net-virtio-netdev-pollus-fail.xml | 23 +++++++++++++++
...xml2argv-net-virtio-netdev-pollus-qemu-fail.xml | 23 +++++++++++++++
.../qemuxml2argv-net-virtio-netdev-pollus.args | 25 ++++++++++++++++
.../qemuxml2argv-net-virtio-netdev-pollus.xml | 23 +++++++++++++++
.../qemuxml2argv-net-virtio-poll-us.xml | 23 +++++++++++++++
tests/qemuxml2argvtest.c | 9 ++++++
.../qemuxml2xmlout-net-virtio-poll-us.xml | 33 ++++++++++++++++++++++
tests/qemuxml2xmltest.c | 1 +
21 files changed, 244 insertions(+), 1 deletion(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev-pollus-fail.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev-pollus-qemu-fail.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev-pollus.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-netdev-pollus.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-net-virtio-poll-us.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-net-virtio-poll-us.xml
--
2.9.4
7 years, 4 months
[libvirt] [dbus PATCH 0/7] additional cleanups and improvements
by Pavel Hrdina
Pavel Hrdina (7):
maint: cleanup gitignore
maint: ignore dist tarball
build: fix distcheck
build: move test related bits to test/Makefile.am
maint: move service file into data directory
data: add system dbus service file
data: add system dbus service policy configuration
.gitignore | 21 +++++++++++----------
Makefile.am | 6 +-----
configure.ac | 23 +++++++++++++++++++++++
data/Makefile.am | 33 +++++++++++++++++++++++++++++++++
data/session/org.libvirt.service.in | 3 +++
data/system/org.libvirt.conf | 12 ++++++++++++
data/system/org.libvirt.service.in | 4 ++++
libvirt-dbus.spec.in | 2 ++
src/Makefile.am | 17 -----------------
src/org.libvirt.service.in | 3 ---
test/Makefile.am | 16 ++++++++++++++++
test/libvirttest.py | 2 +-
12 files changed, 106 insertions(+), 36 deletions(-)
create mode 100644 data/Makefile.am
create mode 100644 data/session/org.libvirt.service.in
create mode 100644 data/system/org.libvirt.conf
create mode 100644 data/system/org.libvirt.service.in
delete mode 100644 src/org.libvirt.service.in
create mode 100644 test/Makefile.am
--
2.13.4
7 years, 4 months
[libvirt] [libvirt-php][PATCH] Generate AUTHORS file
by Michal Privoznik
This is basically taken from libvirt repo. I'm creating .mailmap
to avoid doubled entries in the AUTHORS file. Also, AUTHORS is no
longer tracked by git.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
.gitignore | 1 +
.mailmap | 13 +++++++++++++
AUTHORS => AUTHORS.in | 21 +++++----------------
Makefile.am | 13 ++++++++++++-
autogen.sh | 3 +++
5 files changed, 34 insertions(+), 17 deletions(-)
create mode 100644 .mailmap
rename AUTHORS => AUTHORS.in (45%)
diff --git a/.gitignore b/.gitignore
index 8c52e3f..c622359 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@
/tests/*.trs
/tests/functions.phpt
/test-driver
+/AUTHORS
/INSTALL
Makefile
Makefile.in
diff --git a/.mailmap b/.mailmap
new file mode 100644
index 0000000..213131d
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,13 @@
+# 'git shortlog --help' and look for mailmap for the format of each line
+
+# Email consolidation:
+# <Preferred address in AUTHORS> <other alias used by same author>
+<liyong(a)skybility.com> <4179e1(a)gmail.com>
+<dzamirski(a)datto.com> <dzamirski(a)dattobackup.com>
+<Remi(a)famillecollet.com> <fedora(a)famillecollet.com>
+<mignov(a)gmail.com> <minovotn(a)redhat.com>
+
+# Name consolidation:
+# Preferred author spelling <preferred email>
+Tiziano Müller <dev-zero(a)gentoo.org>
+Stefan Kuhn <stefan.kuhn(a)foss-group.ch>
diff --git a/AUTHORS b/AUTHORS.in
similarity index 45%
rename from AUTHORS
rename to AUTHORS.in
index 4004b20..87e619b 100644
--- a/AUTHORS
+++ b/AUTHORS.in
@@ -3,30 +3,19 @@ Libvirt-php extension
Libvirt-php extension is currently maintained and developed by:
- Michal Prívozník <mprivozn(a)redhat.com>
+ Michal Prívozník <mprivozn(a)redhat.com>
The original project, called php-libvirt, has been originally developed and maintained by:
- Radek Hladik <r.hladik(a)cybersales.cz>
+ Radek Hladik <r.hladik(a)cybersales.cz>
who is still contributing to the project with his patches.
There are also other people that have contributed to the project:
- David King <e-mail(a)unknown.tld>
- Jan-Paul van Burgsteden <e-mail(a)unknown.tld>
- Lyre <liyong(a)skybility.com> (or <4179e1(a)gmail.com>)
- Daniel P. Berrange <berrange(a)redhat.com>
- Tiziano Mueller <dev-zero(a)gentoo.org>
- Yukihiro Kawada <warp.kawada(a)gmail.com>
- Remi Collet <Remi(a)famillecollet.com>
- Ivo van den Abeelen <ivovandenabeelen(a)gmail.com>
- Tiziano Müller <dev-zero(a)gentoo.org>
- Pavel Odintsov <pavel.odintsov(a)gmail.com>
- Tugdual Saunier <tugdual.saunier(a)gmail.com>
- Stefan Kuhn <stefan.kuhn(a)foss-group.ch>
- Dawid Zamirski <dzrudy(a)gmail.com>
- Michal Novotny <minovotn(a)redhat.com>
+ David King <e-mail(a)unknown.tld>
+ Jan-Paul van Burgsteden <e-mail(a)unknown.tld>
+#authorslist#
Thanks goes to all of them with big thanks to Tugdual Saunier
for various fixes and OS-X compilation support.
diff --git a/Makefile.am b/Makefile.am
index e28a96f..4633f43 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,9 +2,20 @@ SUBDIRS = tools src docs tests
ACLOCAL_AMFLAGS = -I m4
-EXTRA_DIST = libvirt-php.spec libvirt-php.spec.in winsrc
+EXTRA_DIST = libvirt-php.spec libvirt-php.spec.in winsrc AUTHORS.in
AM_DISTCHECK_CONFIGURE_FLAGS = --with-distcheck
rpm: clean
@(unset CDPATH ; $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz)
+
+dist-hook: gen-AUTHORS
+
+.PHONY: gen-AUTHORS
+gen-AUTHORS:
+ $(AM_V_GEN)if test -d $(srcdir)/.git; then \
+ out="`cd $(srcdir) && git log --pretty=format:'%aN <%aE>' | sort -u | sed 's/^/\t/'`" && \
+ perl -p -e "s/#authorslist#// and print '$$out'" \
+ < $(srcdir)/AUTHORS.in > $(distdir)/AUTHORS-tmp && \
+ mv -f $(distdir)/AUTHORS-tmp $(distdir)/AUTHORS ; \
+ fi
diff --git a/autogen.sh b/autogen.sh
index 2d8179c..4234d1e 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -2,5 +2,8 @@
test -n "$srcdir" || srcdir=`dirname "$0"`
test -n "$srcdir" || srcdir=.
+# Automake requires that ChangeLog and AUTHORS exist.
+touch AUTHORS ChangeLog || exit 1
+
autoreconf --force --install --verbose "$srcdir"
test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
--
2.13.0
7 years, 4 months
[libvirt] [PATCH 0/2] qemuDomainUndefineFlags: Two fixes
by Michal Privoznik
*** BLURB HERE ***
Michal Privoznik (2):
qemuDomainUndefineFlags: Grab QEMU_JOB_MODIFY
qemuDomainUndefineFlags: unlink nvram file regardless of domain state
src/qemu/qemu_driver.c | 27 ++++++++++++++++-----------
1 file changed, 16 insertions(+), 11 deletions(-)
--
2.13.0
7 years, 4 months
[libvirt] [PATCH v2 0/6] nwfilter adjustments for common object
by John Ferlan
v1: https://www.redhat.com/archives/libvir-list/2017-June/msg00079.html
Changes since v1 (if I can recall all of them!):
Patches 1, 4, 8-13 were pushed
Patches 2, 3, 5-7 are dropped
This this is a rework of patches 14-17
Patch 1 (former patch14):
* Requested adjustments made to ACK'd patch, but since this and the
remaining ones were related I didn't yet push it.
Patch 2 (new):
* From review though... As it turns out, virNWFilterDefEqual doesn't
require the @cmpUUIDs patch.
Patch 3 (fromer patch 15):
* Fixed the line as requested. Patch was ACK'd by like Patch 1 I held
onto it since it was related.
Patch 4 (former patch 16):
* Let's call it a complete rewrite. Rather than rely solely on the
refcnt of the object, I've added/implemented a 'trylock' mechanism
which essentially will allow the subsequent patch to use the
virObjectLockable (e.g. a non recursive lock). Of course as I got
further into the code - I think I've come to the conclusion that
there isn't a way for a @def to disappear between threads with a
refcnt only mechanism because there's a few other serialized locks
which would need to be hurdled before hand. Still as I found out
while running the Avocado test 'nwfilter_update_vm_running.update_arp_rule'
the recursion would occur because the AssignDef code would call the
Instantiation with the lock from the def being updated and that's
where all the awful magic needs to occur. Additionally, I found that
one wouldn't want to attempt to lock the nwfilters list inside the
virNWFilterObjListFindInstantiateFilter because AssignDef already
had that lock. I debated needing a recursive lock there until I
came to the conclusion that the list couldn't change because the
DefineXML is protected by a driver level lock (as is the Undefine
and Reload paths).
Patch 5 (former patch 17):
* No changes, it was ACK'd, but without 1-4 is useless
Patch 6 (NEW):
* Remove the need for the driver level lock for a few API's since
we have self locking nwfilters list. Also left comments in the
3 places where that lock remained to hopefully cause someone great
anxiety if they decided to attempt to remove the lock without
first consulting a specialist.
NB: Ran all of the changes through the 'nwfilter' tests found in
the Avocado test suite.
John Ferlan (6):
nwfilter: Add @refs logic to __virNWFilterObj
nwfilter: Remove unnecessary UUID comparison bypass
nwfilter: Convert _virNWFilterObjList to be a virObjectLockable
nwfilter: Remove recursive locking for nwfilter instantiation
nwfilter: Convert virNWFilterObj to use virObjectLockable
nwfilter: Remove need for nwfilterDriverLock in some API's
src/conf/virnwfilterobj.c | 635 ++++++++++++++++++++++++---------
src/conf/virnwfilterobj.h | 12 +-
src/libvirt_private.syms | 6 +-
src/nwfilter/nwfilter_driver.c | 66 ++--
src/nwfilter/nwfilter_gentech_driver.c | 66 +++-
src/util/virobject.c | 24 ++
src/util/virobject.h | 4 +
src/util/virthread.c | 5 +
src/util/virthread.h | 1 +
9 files changed, 586 insertions(+), 233 deletions(-)
--
2.9.4
7 years, 4 months
[libvirt] [PATCH] hostdev: display leading zeros of USB vendor/product id's in error messages
by Chen Hanxiao
From: Chen Hanxiao <chenhanxiao(a)gmail.com>
Many vendor id's and product id's have leading zeros.
Show them in error messages.
Signed-off-by: Chen Hanxiao <chenhanxiao(a)gmail.com>
---
src/util/virhostdev.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/util/virhostdev.c b/src/util/virhostdev.c
index 579563c..0e6b5a3 100644
--- a/src/util/virhostdev.c
+++ b/src/util/virhostdev.c
@@ -1390,7 +1390,7 @@ virHostdevFindUSBDevice(virDomainHostdevDefPtr hostdev,
} else if (!autoAddress) {
goto out;
} else {
- VIR_INFO("USB device %x:%x could not be found at previous"
+ VIR_INFO("USB device %04x:%04x could not be found at previous"
" address (bus:%u device:%u)",
vendor, product, bus, device);
}
@@ -1418,12 +1418,12 @@ virHostdevFindUSBDevice(virDomainHostdevDefPtr hostdev,
} else if (rc > 1) {
if (autoAddress) {
virReportError(VIR_ERR_OPERATION_FAILED,
- _("Multiple USB devices for %x:%x were found,"
+ _("Multiple USB devices for %04x:%04x were found,"
" but none of them is at bus:%u device:%u"),
vendor, product, bus, device);
} else {
virReportError(VIR_ERR_OPERATION_FAILED,
- _("Multiple USB devices for %x:%x, "
+ _("Multiple USB devices for %04x:%04x, "
"use <address> to specify one"),
vendor, product);
}
@@ -1435,7 +1435,7 @@ virHostdevFindUSBDevice(virDomainHostdevDefPtr hostdev,
usbsrc->autoAddress = true;
if (autoAddress) {
- VIR_INFO("USB device %x:%x found at bus:%u device:%u (moved"
+ VIR_INFO("USB device %04x:%04x found at bus:%u device:%u (moved"
" from bus:%u device:%u)",
vendor, product,
usbsrc->bus, usbsrc->device,
--
2.7.4
7 years, 4 months
[libvirt] [PATCH v3 0/3] implement migrate-getmaxdowntime command
by Scott Garfinkle
Currently, the maximum tolerable downtime for a domain being migrated is
write-only. This patch implements a way to query that value nondestructively.
Changes from [v2]:
* Resequenced and renamed patches
* Use updated qemuMonitorJSONGetMigrationParams for querying migration
parameters.
[v1} https://www.redhat.com/archives/libvir-list/2017-July/msg00908.html
[v2} https://www.redhat.com/archives/libvir-list/2017-July/msg01010.html
Scott Garfinkle (3)
Add virDomainMigrateGetMaxDowntime public API
qemu: Implement virDomainMigrateGetMaxDowntime
virsh: Add support for virDomainMigrateGetMaxDowntime
---
include/libvirt/libvirt-domain.h | 4 ++++
src/driver-hypervisor.h | 6 ++++++
src/libvirt-domain.c | 45 ++++++++++++++++++++++++++++++++++++++++
src/libvirt_public.syms | 4 ++++
src/qemu/qemu_driver.c | 51 ++++++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_monitor.h | 3 +++
src/qemu/qemu_monitor_json.c | 4 ++++
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 16 +++++++++++++-
src/remote_protocol-structs | 8 +++++++
tools/virsh-domain.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
tools/virsh.pod | 18 ++++++++++++++++++
12 files changed, 205 insertions(+), 1 deletion(-)
7 years, 4 months
[libvirt] [PATCH 0/2] fix some nwfilter deadlocks
by Pavel Hrdina
Pavel Hrdina (2):
qemu: fix nwfilter deadlock while reverting to snapshot
qemu: fix nwfilter deadlock in qemuProcessReconnect
src/qemu/qemu_driver.c | 2 +-
src/qemu/qemu_process.c | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
--
2.13.4
7 years, 4 months
[libvirt] [PATCH 0/8] some parsing cleanup and improvements
by Pavel Hrdina
Pavel Hrdina (8):
util: introduce virXMLNodeNameEqual
use virXMLNodeNameEqual instead of xmlStrEqual
conf: cleanup virDomainChrSourceDef parsing
conf: use virXMLPropString for KeyWrapCipherDef parsing
conf: use virXMLPropString for disk geometry parsing
conf: use virXMLPropString for IOThread parsing
conf: use virXMLPropString for IOThread pin parsing
conf: use virXMLPropString for Domain def parsing
src/conf/cpu_conf.c | 2 +-
src/conf/domain_conf.c | 373 ++++++++++++++++-------------------
src/conf/interface_conf.c | 2 +-
src/conf/netdev_bandwidth_conf.c | 6 +-
src/conf/netdev_vport_profile_conf.c | 2 +-
src/conf/network_conf.c | 12 +-
src/conf/node_device_conf.c | 2 +-
src/conf/nwfilter_conf.c | 6 +-
src/conf/nwfilter_params.c | 2 +-
src/conf/secret_conf.c | 2 +-
src/conf/snapshot_conf.c | 2 +-
src/conf/storage_conf.c | 4 +-
src/conf/virnetworkobj.c | 2 +-
src/conf/virsavecookie.c | 2 +-
src/esx/esx_vi_types.c | 9 +-
src/libvirt_private.syms | 1 +
src/security/virt-aa-helper.c | 2 +-
src/test/test_driver.c | 2 +-
src/util/virxml.c | 16 ++
src/util/virxml.h | 3 +
src/vz/vz_sdk.c | 2 +-
tools/virsh-domain.c | 18 +-
tools/virsh-interface.c | 12 +-
23 files changed, 236 insertions(+), 248 deletions(-)
--
2.13.5
7 years, 4 months
[libvirt] [PATCH v2] tests: add qemu x86 kvm 32-on-64 test
by Cole Robinson
There's some specific logic in qemuBuildCpuCommandLine to support
auto adding -cpu qemu 32 for arch=i686 with an x86_64 qemu binary.
Add a test case for it
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
v2:
Drop unnecessary qemu-kvm path usage
.../qemuxml2argv-x86-kvm-32-on-64.args | 21 +++++++++++++++++++++
.../qemuxml2argv-x86-kvm-32-on-64.xml | 13 +++++++++++++
tests/qemuxml2argvtest.c | 1 +
3 files changed, 35 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-x86-kvm-32-on-64.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-x86-kvm-32-on-64.xml
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-x86-kvm-32-on-64.args b/tests/qemuxml2argvdata/qemuxml2argv-x86-kvm-32-on-64.args
new file mode 100644
index 000000000..5b644b0a6
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-x86-kvm-32-on-64.args
@@ -0,0 +1,21 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-system-x86_64 \
+-name kvm \
+-S \
+-machine pc,accel=kvm \
+-cpu qemu32 \
+-m 4096 \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid d091ea82-29e6-2e34-3005-f02617b36e87 \
+-nographic \
+-nodefaults \
+-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-kvm/monitor.sock,server,\
+nowait \
+-mon chardev=charmonitor,id=monitor,mode=readline \
+-no-acpi \
+-boot c
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-x86-kvm-32-on-64.xml b/tests/qemuxml2argvdata/qemuxml2argv-x86-kvm-32-on-64.xml
new file mode 100644
index 000000000..37f53bf2a
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-x86-kvm-32-on-64.xml
@@ -0,0 +1,13 @@
+<domain type='kvm'>
+ <name>kvm</name>
+ <uuid>d091ea82-29e6-2e34-3005-f02617b36e87</uuid>
+ <memory unit='KiB'>4194304</memory>
+ <os>
+ <type arch='i686'>hvm</type>
+ </os>
+ <devices>
+ <emulator>/usr/bin/qemu-system-x86_64</emulator>
+ <controller type='usb' model='none'/>
+ <memballoon model='none'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index aa83013a2..f74d45ba0 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -709,6 +709,7 @@ mymain(void)
DO_TEST("kvm", QEMU_CAPS_MACHINE_OPT);
DO_TEST("default-kvm-host-arch", QEMU_CAPS_MACHINE_OPT);
DO_TEST("default-qemu-host-arch", QEMU_CAPS_MACHINE_OPT);
+ DO_TEST("x86-kvm-32-on-64", QEMU_CAPS_MACHINE_OPT);
DO_TEST("boot-cdrom", NONE);
DO_TEST("boot-network", NONE);
DO_TEST("boot-floppy", NONE);
--
2.13.3
7 years, 4 months