[libvirt] [PATCH v5 0/3] add nodeset check in numatune
by Chen Fan
when setting elements memnode and nodeset in attribute numatune more
than the host nodes in XML file, VM boot should fail. so add check for
that.
Chen Fan (3):
bitmap: add virBitmapLastSetBit for finding the last bit position of
bitmap
numatune: add check for numatune nodeset range
virnuma: use virNumaNodesetIsAvailable checking nodeset in
virNumaSetupMemoryPolicy
src/conf/numatune_conf.c | 28 ++++++++++++
src/conf/numatune_conf.h | 1 +
src/libvirt_private.syms | 2 +
src/qemu/qemu_command.c | 4 ++
src/util/virbitmap.c | 45 ++++++++++++++++++
src/util/virbitmap.h | 3 ++
src/util/virnuma.c | 53 +++++++++++++++++-----
src/util/virnuma.h | 1 +
...rgv-numatune-static-nodeset-exceed-hostnode.xml | 35 ++++++++++++++
tests/qemuxml2argvmock.c | 9 ++++
tests/qemuxml2argvtest.c | 2 +
tests/virbitmaptest.c | 13 +++++-
12 files changed, 184 insertions(+), 12 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-static-nodeset-exceed-hostnode.xml
--
1.9.3
10 years
[libvirt] [PATCH v4 0/3] add nodeset check in numatune
by Chen Fan
when setting elements memnode and nodeset in attribute numatune more
than the host nodes in XML file, VM boot should fail. so add check for
that.
Chen Fan (3):
bitmap: add virBitmapLastSetBit for finding the last bit position of
bitmap
numatune: add check for numatune nodeset range
virnuma: use virNumaNodesetIsAvailable checking nodeset in
virNumaSetupMemoryPolicy
src/conf/numatune_conf.c | 28 ++++++++++
src/conf/numatune_conf.h | 1 +
src/libvirt_private.syms | 2 +
src/qemu/qemu_command.c | 4 ++
src/util/virbitmap.c | 45 ++++++++++++++++
src/util/virbitmap.h | 3 ++
src/util/virnuma.c | 61 +++++++++++++++-------
src/util/virnuma.h | 1 +
...rgv-numatune-static-nodeset-exceed-hostnode.xml | 36 +++++++++++++
tests/qemuxml2argvmock.c | 9 ++++
tests/qemuxml2argvtest.c | 1 +
tests/virbitmaptest.c | 13 ++++-
12 files changed, 184 insertions(+), 20 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-static-nodeset-exceed-hostnode.xml
--
1.9.3
10 years
[libvirt] [PATCH 2/2] qemu: migration: Ignore null ptr in qemuMigrationStopNBDServer
by weiwei li
qemuMigrationCookiePtr mig->nbd may be null when MigrationCookie
do not have nbd information ,but nbd port did allocated before and
must be released here, so ignore mig->nbd null ptr and just warn.
Signed-off-by: Weiwei Li <nuonuoli(a)tencent.com>
---
src/qemu/qemu_migration.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 0ad8054..134b041 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -1584,7 +1584,7 @@ qemuMigrationStopNBDServer(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
if (!mig->nbd)
- return;
+ VIR_WARN("mig->nbd is null");
if (qemuDomainObjEnterMonitorAsync(driver, vm,
QEMU_ASYNC_JOB_MIGRATION_IN) < 0)
--
1.7.1
10 years
[libvirt] [PATCH] vbox: Prevent from registering storage driver with NULL
by Taowei Luo
Since 5892944fc853 the virRegisterStorageDriver may be called with
a NULL storageDriver if it failed on vboxGetStorageDriver.
So make sure the storageDriver is not NULL before register.
---
src/vbox/vbox_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/vbox/vbox_driver.c b/src/vbox/vbox_driver.c
index c64d2d6..b2e35e9 100644
--- a/src/vbox/vbox_driver.c
+++ b/src/vbox/vbox_driver.c
@@ -74,7 +74,7 @@ int vboxStorageRegister(void)
if (VBoxCGlueInit(&uVersion) == 0)
storageDriver = vboxGetStorageDriver(uVersion);
- if (virRegisterStorageDriver(storageDriver) < 0)
+ if (storageDriver && virRegisterStorageDriver(storageDriver) < 0)
return -1;
return 0;
}
--
1.7.9.5
10 years
[libvirt] [PATCH] examples: add systemtap script to ease lock debugging
by Martin Kletzander
As discussed before, this simple script should help with debugging
deadlocks, although there are still some caveats. RWLocks are not
handled by this and if your deadlock if very racy, it may not lock
up when running with this script due to the slowdown.
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
examples/systemtap/lock-debug.stp | 118 ++++++++++++++++++++++++++++++++++++++
1 file changed, 118 insertions(+)
create mode 100644 examples/systemtap/lock-debug.stp
diff --git a/examples/systemtap/lock-debug.stp b/examples/systemtap/lock-debug.stp
new file mode 100644
index 0000000..8f06340
--- /dev/null
+++ b/examples/systemtap/lock-debug.stp
@@ -0,0 +1,118 @@
+#!/usr/bin/stap --ldd -d /usr/sbin/libvirtd -c libvirtd
+#
+# Usage with installed libvirt daemon:
+# stap --ldd -d /usr/sbin/libvirtd -c libvirtd \
+# lock-debug.stp /usr/lib/libvirt.so
+#
+# If made executable; simple './lock-debug.stp' should work too.
+#
+# TODOs:
+#
+# Document usage with uninstalled daemon and libs. Assuming CWD is toplevel
+# source git directory, it should be only slight modification to the following:
+#
+# ./run stap --ldd -c daemon/libvirtd -d daemon/libvirtd
+# examples/systemtap/lock-debug.stp src/.libs/libvirt.so
+#
+# Debug RWLock mechanisms as well.
+#
+# Author: Martin Kletzander <mkletzan(a)redhat.com>
+
+
+global mx_tolock
+global mx_locked
+
+
+function filter()
+{
+ if (pid() != target())
+ return 1
+
+ return 0
+}
+
+probe library = process( %( $# > 0 %? @1 %: "/usr/lib/libvirt.so" %) )
+{
+ if (filter()) next
+}
+
+probe lock = library.function("virMutexLock")
+{
+ lockname = usymdata($m)
+}
+
+probe unlock = library.function("virMutexUnlock")
+{
+ lockname = usymdata($m)
+}
+
+probe begin
+{
+ %( $# > 1 %? println("error: Too many parameters"); exit();
+ %: print("Started, press ^C when the proccess hangs\n"); %)
+}
+
+probe lock.call
+{
+ mx_tolock[lockname, tid()] = sprint_usyms(ubacktrace())
+}
+
+probe lock.return
+{
+ if ([lockname, tid()] in mx_tolock) {
+ mx_locked[lockname, tid()] = mx_tolock[lockname, tid()]
+ delete mx_tolock[lockname, tid()]
+ } else {
+ printf("internal error: lock acquired unwillingly?\n")
+ }
+}
+
+probe unlock.call
+{
+ found = 0
+
+ foreach ([lock, tid] in mx_locked) {
+ if (lock != lockname)
+ continue
+ if (tid != tid()) {
+ printf("Warning: lock released on different thread that locked it.\n")
+ printf("Lock trace:\n%s\n", mx_locked[lock, tid])
+ printf("Unlock trace:\n%s\n", sprint_usyms(ubacktrace()))
+ }
+
+ found = tid
+ break
+ }
+
+ if (found && [lockname, found] in mx_locked)
+ delete mx_locked[lockname, found]
+}
+
+probe end
+{
+ tmp = 0
+
+ printf("\n=============\n")
+
+ foreach (bt1 = [lock1, tid1] in mx_tolock) {
+ deadlock = 0
+
+ foreach (bt2 = [lock2, tid2] in mx_tolock) {
+ if (lock1 == lock2) {
+ if (!tmp++)
+ printf("The following locks cannot be acquired:\n")
+
+ if (!deadlock++)
+ printf("Lock %s was locked in thread %d with this trace:\n%s\n",
+ lock1, tid1, bt1)
+
+ printf("and is waiting to be locked by thread %d here:\n%s\n",
+ tid2, bt2)
+ }
+ }
+ if (deadlock)
+ printf("---\n")
+ }
+ if (!tmp)
+ printf("No deadlocks found, sorry.\n")
+}
--
2.1.2
10 years
[libvirt] NBD TLS support in QEMU
by Stefan Hajnoczi
Hi,
QEMU offers both NBD client and server functionality. The NBD protocol
runs unencrypted, which is a problem when the client and server
communicate over an untrusted network.
The particular use case that prompted this mail is storage migration in
OpenStack. The goal is to encrypt the NBD connection between source and
destination hosts during storage migration.
I think we can integrate TLS into the NBD protocol as an optional flag.
A quick web search does not reveal existing open source SSL/TLS NBD
implementations. I do see a VMware NBDSSL protocol but there is no
specification so I guess it is proprietary.
The NBD protocol starts with a negotiation phase. This would be the
appropriate place to indicate that TLS will be used. After client and
server complete TLS setup the connection can continue as normal.
Besides QEMU, the userspace NBD tools (http://nbd.sf.net/) can also be
extended to support TLS. In this case the kernel needs a localhost
socket and userspace handles TLS.
Thoughts?
Stefan
10 years
[libvirt] [PATCH] mingw: fix build failure
by Pavel Hrdina
This macro seems to be defined only on linux/unix and it fails during
mingw build. Its value is '16' (taken from net/if.h) so define it if
it's not defined.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
For now just define it for mingw but we should review all daemon related
code and not build it for mingw at all to save is those kind of failures.
src/util/virnetdev.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 6da3371..3831009 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -52,6 +52,10 @@
# include <net/if_dl.h>
#endue
+#offender's IFNAMSIZ
+# define IFNAMSIZ 16
+#endif
+
#define VIR_FROM_THIS VIR_FROM_NONE
VIR_LOG_INIT("util.netdev");
--
2.0.4
10 years
[libvirt] [PATCH] vbox: remove unused code that causes build failures
by Martin Kletzander
Since 87dea4fcffb2d1b120e7841adc0e3d8ea97ed777 vboxGetDrivers() is not
used for getting the vbox network driver. The only call the code does
is using NULL as the @networkDriver_ret param , but the code still used
vbox[0-9][0-9]NetworkDriver that didn't exist anymore.
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
src/vbox/vbox_driver.c | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/src/vbox/vbox_driver.c b/src/vbox/vbox_driver.c
index 7d7214a..4d13fbf 100644
--- a/src/vbox/vbox_driver.c
+++ b/src/vbox/vbox_driver.c
@@ -74,10 +74,8 @@ extern virStorageDriver vbox43_4StorageDriver;
#if !defined(WITH_DRIVER_MODULES) || defined(VBOX_STORAGE_DRIVER)
static void
vboxGetDrivers(virDriverPtr *driver_ret,
- virNetworkDriverPtr *networkDriver_ret,
virStorageDriverPtr *storageDriver_ret)
{
- virNetworkDriverPtr networkDriver;
virStorageDriverPtr storageDriver;
uint32_t uVersion;
@@ -87,7 +85,6 @@ vboxGetDrivers(virDriverPtr *driver_ret,
* if the user requests a vbox:// URI which we know will
* never work
*/
- networkDriver = &vbox22NetworkDriver;
storageDriver = &vbox22StorageDriver;
/* Init the glue and get the API version. */
@@ -104,43 +101,33 @@ vboxGetDrivers(virDriverPtr *driver_ret,
*/
if (uVersion >= 2001052 && uVersion < 2002051) {
VIR_DEBUG("VirtualBox API version: 2.2");
- networkDriver = &vbox22NetworkDriver;
storageDriver = &vbox22StorageDriver;
} else if (uVersion >= 2002051 && uVersion < 3000051) {
VIR_DEBUG("VirtualBox API version: 3.0");
- networkDriver = &vbox30NetworkDriver;
storageDriver = &vbox30StorageDriver;
} else if (uVersion >= 3000051 && uVersion < 3001051) {
VIR_DEBUG("VirtualBox API version: 3.1");
- networkDriver = &vbox31NetworkDriver;
storageDriver = &vbox31StorageDriver;
} else if (uVersion >= 3001051 && uVersion < 3002051) {
VIR_DEBUG("VirtualBox API version: 3.2");
- networkDriver = &vbox32NetworkDriver;
storageDriver = &vbox32StorageDriver;
} else if (uVersion >= 3002051 && uVersion < 4000051) {
VIR_DEBUG("VirtualBox API version: 4.0");
- networkDriver = &vbox40NetworkDriver;
storageDriver = &vbox40StorageDriver;
} else if (uVersion >= 4000051 && uVersion < 4001051) {
VIR_DEBUG("VirtualBox API version: 4.1");
- networkDriver = &vbox41NetworkDriver;
storageDriver = &vbox41StorageDriver;
} else if (uVersion >= 4001051 && uVersion < 4002020) {
VIR_DEBUG("VirtualBox API version: 4.2");
- networkDriver = &vbox42NetworkDriver;
storageDriver = &vbox42StorageDriver;
} else if (uVersion >= 4002020 && uVersion < 4002051) {
VIR_DEBUG("VirtualBox API version: 4.2.20 or higher");
- networkDriver = &vbox42_20NetworkDriver;
storageDriver = &vbox42_20StorageDriver;
} else if (uVersion >= 4002051 && uVersion < 4003004) {
VIR_DEBUG("VirtualBox API version: 4.3");
- networkDriver = &vbox43NetworkDriver;
storageDriver = &vbox43StorageDriver;
} else if (uVersion >= 4003004 && uVersion < 4003051) {
VIR_DEBUG("VirtualBox API version: 4.3.4 or higher");
- networkDriver = &vbox43_4NetworkDriver;
storageDriver = &vbox43_4StorageDriver;
} else {
VIR_DEBUG("Unsupported VirtualBox API version: %u", uVersion);
@@ -151,8 +138,6 @@ vboxGetDrivers(virDriverPtr *driver_ret,
if (driver_ret)
*driver_ret = NULL;
- if (networkDriver_ret)
- *networkDriver_ret = networkDriver;
if (storageDriver_ret)
*storageDriver_ret = storageDriver;
}
@@ -178,7 +163,7 @@ int vboxStorageRegister(void)
{
virStorageDriverPtr storageDriver;
- vboxGetDrivers(NULL, NULL, &storageDriver);
+ vboxGetDrivers(NULL, &storageDriver);
if (virRegisterStorageDriver(storageDriver) < 0)
return -1;
--
2.1.2
10 years
[libvirt] Release of libvirt-1.2.10
by Daniel Veillard
As planned a new release is out, just in time for the OpenStack Summit.
It is tagged in git and available as signed rpms and tarballs at the
usual place:
ftp://libvirt.org/libvirt/
This is a slightly smaler than usual release, around 200 commits,
probably due top the KVM forum last month :-)
Notable improvements pushed for the vbox driver, some changes too
for the libxl one, and a big refectoring of the driver internals
though that should not be user visible. And as usual a large amount of
bug fixes and improvements:
Features:
- vbox: various drivers improvements (Taowei Luo)
- libxl: various drivers improvements (Stefan Bader)
- Internal driver refactoring (Daniel P. Berrange)
Documentation
- virsh: Adjust the text in man page regarding qemu-attach (John Ferlan)
- HACKING: Regenerate after recent change (Peter Krempa)
- fix an improper git browsable address (Chen Hanxiao)
- Mention repository locations in contributor guidelines (Martin Kletzander)
- apps: Update references to virt-p2v and virt-v2v. (Richard W.M. Jones)
- libvirt: Document UNDEFINE_NVRAM in UndefineFlags doc (Cole Robinson)
- conf: fix a wrong comment in virSocketAddrNumericFamily() (Chen Fan)
- virsh: man: Fix description of --live/--config usage (Peter Krempa)
- qemu: add short document on qemu event handlers (Laine Stump)
- fix a typo in drvlxc (Chen Hanxiao)
Portability:
- mingw: fix build failure (Pavel Hrdina)
- domain: fix parsing of memory tunables on 32-bit machines (Eric Blake)
- virnetdev: stub virNetDev{Add,Del}Multi on FreeBSD (Roman Bogorodskiy)
- Renamed internal __mon_yday into mon_yday to avoid conflicts (Cédric Bosdonnat)
- Fix build-time pkg-config files in VPATH (Jiri Denemark)
- Fix build with older libcurl (Ján Tomko)
- vbox: remove unused code that causes build failures (Martin Kletzander)
- Makefile: Fix build without driver modules (Michal Privoznik)
- build: fix build on non-Linux (Eric Blake)
- qemu: monitor: Avoid shadowing variable "devname" on FreeBSD. Again. (Peter Krempa)
Bug Fixes:
- hotplug: fix char device detach (Pavel Hrdina)
- vbox_storage: fix coverity issue with overwriting value (Pavel Hrdina)
- Relax duplicate SCSI host pool checking (Ján Tomko)
- qemu: Release nbd port from migrationPorts instead of remotePorts (weiwei li)
- libxl: fix double-free of libxl_domain_build_info (Jim Fehlig)
- Reject live update of offloading options (Ján Tomko)
- conf: forbid negative values in virDomainParseScaledValue (Martin Kletzander)
- virsh: Fix memory leak in cmdNetworkDHCPLeases (Luyao Huang)
- virutil: fix virGetSCSIHostNumber stub return type (Roman Bogorodskiy)
- virnetdev: Resolve Coverity RESOURCE_LEAK (John Ferlan)
- virnetdev: Resolve Coverity FORWARD_NULL (John Ferlan)
- virnetdev: Resolve Coverity DEADCODE (John Ferlan)
- storage: Fix crash when parsing backing store URI with schema (Peter Krempa)
- src/Makefile.am: Add forgotten backslash (Michal Privoznik)
- storage_conf: Resolve libvirtd crash matching scsi_host (John Ferlan)
- qemu-attach: Assign device aliases (John Ferlan)
- hotplug: Check for alias in net detach (John Ferlan)
- hotplug: Check for alias in chrdev detach (John Ferlan)
- hotplug: Check for alias in hostdev detach (John Ferlan)
- hotplug: Check for alias in disk detach (John Ferlan)
- hotplug: Check for alias in controller detach (John Ferlan)
- remote: fix jump depends on uninitialised value (Jincheng Miao)
- qemu: forbid snapshot-delete --children-only on external snapshot (Eric Blake)
- util: eliminate "use after free" in callers of virNetDevLinkDump (Laine Stump)
- vbox: network: make sure driver is not NULL in virRegisterNetworkDriver (Shanzhi Yu)
- hyperv: avoid query memleaks on failure (Eric Blake)
- qemu: Disallow NUMA/network tuning for session mode (Erik Skultety)
- qemu: restore: Fix restoring of VM when the restore hook returns empty XML (Peter Krempa)
- Fix cast errors with clang (Roman Bogorodskiy)
- qemu: unref cfg after TerminateMachine has been called (Martin Kletzander)
- qemu: x86_64 is good enough for i686 (Lubomir Rintel)
- qemu: move setting emulatorpin ahead of monitor showing up (Zhou yimin)
- tests: fix incorrect caps for shmem-invalid-size, shmem-small-size (Maxime Leroy)
- conf: tests: fix virDomainNetDefFormat for vhost-user in client mode (Maxime Leroy)
- libxl: add missing 'break' from commit 1298daca (Jim Fehlig)
- conf: fix an memory leak in virSocketAddrIsNumericLocalhost() (Chen Fan)
- virsh: domain: Use global constant for XML file size limit (Peter Krempa)
- Fix leftover typo '&' -> '&&' (Martin Kletzander)
- qemu: save domain status after set domain's numa parameters (Shanzhi Yu)
- qemu: call qemuDomainObjBeginJob/qemuDomainObjEndJob in qemuDomainSetInterfaceParameters (Shanzhi Yu)
- qemu: save domain status after set the blkio parameters (Shanzhi Yu)
- security_selinux: Don't relabel /dev/net/tun (Michal Privoznik)
- qemu: Remove possible NULL deref in debug output (John Ferlan)
- qemu: Remove need for virConnectPtr in hotunplug detach host, net (John Ferlan)
- qemu: Fix hot unplug of SCSI_HOST device (John Ferlan)
- util: Prepare URI formatting for libxml2 >= 2.9.2 (Martin Kletzander)
- qemu: Don't compare CPU against host for TCG (Cole Robinson)
- qemu: Fix updating balloon period in live XML (Erik Skultety)
- qemu: Fix updating bandwidth limits in live XML (Erik Skultety)
- qemu: json: Fix missing break in error reporting function (Peter Krempa)
Improvements:
- Match scsi_host pools by parent address first (Ján Tomko)
- libxl: Support user-specified <emulator> (Jim Fehlig)
- Spell TIOCSCTTY right in the error message (Ján Tomko)
- Teach virt-aa-helper to use TEMPLATE.qemu if the domain is kvm or kqemu (Cédric Bosdonnat)
- qemu: better error message when block job can't succeed (Eric Blake)
- test: Add test to verify helpers used for backing file name parsing (Peter Krempa)
- maint: add syntax check to prohibit static zero init (Eric Blake)
- maint: avoid static zero init in drivers (Eric Blake)
- maint: avoid static zero init in helpers (Eric Blake)
- maint: avoid static zero init in tests (Eric Blake)
- maint: avoid static zero init in tools (Eric Blake)
- maint: avoid static zero init in core files (Eric Blake)
- audit: use bool for audit log choice (Eric Blake)
- virutil: Introduce virGetSCSIHostNameByParentaddr (John Ferlan)
- virutil: Introduce virGetSCSIHostNumber (John Ferlan)
- vbox: Rewrite vboxStorageVolGetPath (Taowei Luo)
- vbox: Rewrite vboxStorageVolGetXMLDesc (Taowei Luo)
- vbox: Rewrite vboxStorageVolGetInfo (Taowei Luo)
- vbox: Rewrite vboxStorageVolDelete (Taowei Luo)
- vbox: Make IMediumAttachment work with vbox2.2 and 3.0 (Taowei Luo)
- vbox: Rewrite vboxStorageVolCreateXML (Taowei Luo)
- vbox: Make CreateHardDisk support all vbox versions (Taowei Luo)
- vbox: Rewrite vboxStorageVolLookupByPath (Taowei Luo)
- vbox: Make FindMedium support old vbox versions (Taowei Luo)
- vbox: Rewrite vboxStorageVolLookupByKey (Taowei Luo)
- vbox: Rewrite vboxStorageVolLookupByName (Taowei Luo)
- vbox: Rewrite vboxStoragePoolListVolumes (Taowei Luo)
- vbox: Rewrite vboxStoragePoolNumOfVolumes (Taowei Luo)
- vbox: Rewrite vbox-independent functions (Taowei Luo)
- vbox: move common codes to vbox_common.h (Taowei Luo)
- vbox: Remove VBOX_OBJECT_CHECK macro (Taowei Luo)
- vbox: Fix copyright mistake (Taowei Luo)
- virsh: Improve the job type reported of virsh cmd blockcommit (Shanzhi Yu)
- qemu_agent: Produce more readable error messages (Michal Privoznik)
- qemu: change macvtap multicast list in response to NIC_RX_FILTER_CHANGED (Tony Krowiak)
- util: Functions to update host network device's multicast filter (Tony Krowiak)
- tests: Add SELINUX_LIBS to fix viridentitytest linker bug (Julio Faracco)
- Add new driver-*.h files to DRIVER_SOURCES (Daniel P. Berrange)
- Fix indentation of sysinfo data (Daniel P. Berrange)
- Fix preprocessor indentation in libvirt.h.in (Daniel P. Berrange)
- Move virConnect related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virDomain related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virEvent related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virStoragePool/Vol related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virStream related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virSecret related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virNodeDevice related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virNWFilter related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virInterface related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virNetwork related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virDomainSnapshot related APIs out of libvirt.h.in (Daniel P. Berrange)
- Move virConnect/virNode related APIs out of libvirt.c (Daniel P. Berrange)
- Move virDomain related APIs out of libvirt.c (Daniel P. Berrange)
- Make virTypedParameterValidateSet non-static (Daniel P. Berrange)
- Move virStorage{Pool,Vol} related APIs out of libvirt.c (Daniel P. Berrange)
- Move virStream related APIs out of libvirt.c (Daniel P. Berrange)
- Move virSecret related APIs out of libvirt.c (Daniel P. Berrange)
- Move virNodeDevice related APIs out of libvirt.c (Daniel P. Berrange)
- Move virNWFilter related APIs out of libvirt.c (Daniel P. Berrange)
- Move virInterface related APIs out of libvirt.c (Daniel P. Berrange)
- Move virNetwork related APIs out of libvirt.c (Daniel P. Berrange)
- Move virDomainSnapshot related APIs out of libvirt.c (Daniel P. Berrange)
- Split driver.h into multiple parts (Daniel P. Berrange)
- Rename virDriver to virHypervisorDriver (Daniel P. Berrange)
- qemu: migration: Make check for empty hook XML robust (Peter Krempa)
- util: string: Add helper to check whether string is empty (Peter Krempa)
- Add support for /run/initctl (Rick Harris)
- qemu: Convert qemuDomainUpdateDeviceConfig to typecasted enum (Peter Krempa)
- qemu: Convert qemuDomainDetachDeviceConfig to typecasted enum (Peter Krempa)
- qemu: Convert qemuDomainAttachDeviceConfig to typecasted enum (Peter Krempa)
- qemu: Convert qemuDomainUpdateDeviceLive to typecasted enum (Peter Krempa)
- qemu: Convert qemuDomainDetachDeviceLive to typecasted enum (Peter Krempa)
- conf: Move definition of virDomainParseMemory (Peter Krempa)
- Implement empty post parse callbacks for all drivers (Peter Krempa)
- qemu: monitor: Add functions for object hot-add/remove (Peter Krempa)
- util: json: Add option to skip adding a JSON object if it is NULL (Peter Krempa)
- util: json: Improve handling and docs for adding JSON objects (Peter Krempa)
- util: json: Split out code to create json value objects (Peter Krempa)
- qemu: hotplug: Use typecasted switch statement when plugging new devices (Peter Krempa)
- conf: Add compile time check that devices were checked for ABI stability (Peter Krempa)
- conf: shmem: Add ABI stability check (Peter Krempa)
- conf: Improve adding of new address types (Peter Krempa)
- conf: Check whether migration_address is localhost (Chen Fan)
- conf: add check if migration_host is a localhost address (Chen Fan)
- migration: add migration_host support for IPv6 address without brackets (Chen Fan)
- Introduce virStringStripIPv6Brackets (Ján Tomko)
- conf: improve the comments for "xmlopt" (Wang Rui)
- libxl: Add function to determine device model type (Jim Fehlig)
- Xen: Defer setting default vram value to Xen drivers (Jim Fehlig)
- libxl: Copy user-specified keymap to libxl build info struct (Jim Fehlig)
- esx: Implement virDomainScreenshot using libcurl stream driver (Matthias Bolte)
- esx: Add libcurl based stream driver (Matthias Bolte)
- qemu: change macvtap device MAC address in response to NIC_RX_FILTER_CHANGED (Laine Stump)
- qemu: setup infrastructure to handle NIC_RX_FILTER_CHANGED event (Laine Stump)
- qemu: qemuMonitorQueryRxFilter - retrieve guest netdev rx-filter (Laine Stump)
- util: define virNetDevRxFilter and basic utility functions (Laine Stump)
- network: set interface actual trustGuestRxFilters from network/portgroup (Laine Stump)
- conf: add trustGuestRxFilters attribute to network and domain interface (Laine Stump)
- maint: update .mailmap (Eric Blake)
- Include .libs in libdir in source tree pkg-config files (Ján Tomko)
- minor shmem clean-ups (Martin Kletzander)
- qemu: Build command line for ivshmem device (Martin Kletzander)
- qemu: add capability probing for ivshmem device (Maxime Leroy)
- docs, conf, schema: add support for shmem device (Martin Kletzander)
- qemu: support nospace reason in io error event (Eric Blake)
- qemu_command: Split qemuBuildCpuArgStr (Cole Robinson)
- configure: improve misleading libnl3-devel missing error message (Shanzhi Yu)
- qemu: Improve domainSetTime error info report (Shanzhi Yu)
- vbox: Rewrite vboxNetworkGetXMLDesc (Taowei)
- vbox: Rewrite vboxNetworkCreate (Taowei)
- vbox: Rewrite vboxNetworkUndefineDestroy (Taowei)
- vbox: Rewrite vboxNetworkDefineCreateXML (Taowei)
- vbox: Rewrite vboxNetworkLookupByName (Taowei)
- vbox: Rewrite vboxNetworkLookupByUUID (Taowei)
- vbox: Rewrite vboxConnectListDefinedNetworks (Taowei)
- vbox: Rewrite vboxConnectNumOfDefinedNetworks (Taowei)
- vbox: Rewrite vboxConnectListNetworks (Taowei)
- vbox: Rewrite vboxConnectNumOfNetworks (Taowei)
- vbox: Rewrite vboxNetworkClose (Taowei)
- vbox: Rewrite vboxNetworkOpen (Taowei)
- vbox: Interfaces for register per parties (Taowei)
- Add virCgroupTerminateMachine stub (Ján Tomko)
- Make editor used for 'virsh edit' configurable (Guido Günther)
- qemu: use systemd's TerminateMachine to kill all processes (Guido Günther)
- maint: Prohibit "devname" by a syntax check rules (Peter Krempa)
- qemu: bulk stats: add block allocation information (Francesco Romani)
- qemu: monitor: Add helper function to fill physical/virtual image size (Peter Krempa)
Cleanups:
- vbox: Remove unused things in vbox_tmpl.c (Taowei Luo)
- Cleanup maintainers list (Jiri Denemark)
So thanks everybody for your help with this release be it with reports
ideas, patches, reviews or documentation !
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
10 years