[libvirt] [PATCH] maint: Bump version number to 4.0.0
by Andrea Bolognani
As documented in
https://libvirt.org/downloads.html#schedule
https://libvirt.org/downloads.html#numbering
the next release will happen in the middle of January 2018 and,
being the first release of a new year, will bring a brand new
major version number with it.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
Pushed under the "I can't believe you got it wrong, Michal!" rule.
configure.ac | 2 +-
docs/news.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index ec98e83d7..fba4e4bf5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
-AC_INIT([libvirt], [3.11.0], [libvir-list(a)redhat.com], [], [https://libvirt.org])
+AC_INIT([libvirt], [4.0.0], [libvir-list(a)redhat.com], [], [https://libvirt.org])
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
diff --git a/docs/news.xml b/docs/news.xml
index 72bdea220..0ec9857e2 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -33,7 +33,7 @@
-->
<libvirt>
- <release version="v3.11.0" date="unreleased">
+ <release version="v4.0.0" date="unreleased">
<section title="New features">
</section>
<section title="Improvements">
--
2.14.3
7 years
[libvirt] [PATCH 0/3] macOS build and CI fixes
by Andrea Bolognani
The first one is technically a build breaker, but only affects
development builds so it can wait the end of the freeze I guess.
The second patch gets Travis to the point where the build failure
would actually show up, and the last one is just a small cleanup.
Andrea Bolognani (3):
util: gettid() is Linux-specific
travis: Upgrade brew packages
travis: Don't try to install brew packages twice
.travis.yml | 2 +-
src/util/virthread.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
--
2.14.3
7 years
[libvirt] [PATCH 0/4] tests: Drop more useless prefixes
by Michal Privoznik
Yet again, trimmed patches, whole patches can be found here:
https://github.com/zippy2/libvirt/commits/qemuxml2xmldata
Michal Privoznik (4):
test: Drop useless prefix for qemuagent test data
test: Drop useless prefix for qemuargv2xml test data
test: Drop useless prefix for qemuxml2xmldata test data
test: Drop useless prefix for genericxml2xml test data
tests/genericxml2xmltest.c | 4 ++--
tests/qemuagenttest.c | 2 +-
tests/qemuargv2xmltest.c | 4 ++--
tests/qemuxml2xmltest.c | 8 ++++----
<trim/>
684 files changed, 15 insertions(+), 15 deletions(-)
--
2.13.6
7 years
[libvirt] libvirt 3.9.0 locks (was libvirt 3.5.0 locks)
by Vasiliy Tolstov
Hi again. I'm still try to determine why my libvirtd locks, this is
another portion of gdb stuff:
https://gist.github.com/vtolstov/ae8c4a67e15b2fbd14bbb95c226fb427
error looks in logs like:
Dec 01 12:35:49 cn04 libvirtd[1171]: 2017-12-01 09:35:49.637+0000:
28063: error : qemuDomainObjBeginJobInternal:4403 : Timed out during
operation: cannot acquire state change lock (held by
remoteDispatchConnectGetAllDomainStats)
Dec 01 12:35:49 cn04 libvirtd[1171]: 2017-12-01 09:35:49.637+0000:
28063: warning : qemuDomainObjBeginJobInternal:4391 : Cannot start job
(destroy, none) for domain 225560-20001; current job is (query, none)
owned by (1180 remoteDispatchConnectGetAllDomainStats, 0 <null>) for
(30s, 0s)
and virsh list says that domain in shutdown state (but qemu process
already exited).
Please, help me to solve this issue.
--
Vasiliy Tolstov,
e-mail: v.tolstov(a)selfip.ru
7 years
[libvirt] [PATCH for 3.11 0/2] qemuxml2argvdata: Drop useless prefix for test cases
by Michal Privoznik
The patches are trimmed out a lot to fit the size limit of our list. Anyway,
the interesting bits are kept and also you can find the patches at my github:
https://github.com/zippy2/libvirt/commits/qemuxml2argvdata
If this approach is ACKed, I can continue because some other files suffer the
same problem (e.g. qemuxml2xmloutdata).
Michal Privoznik (2):
tests: Drop qemuxml2argv- prefix for qemuxml2argv-*.xml test cases
tests: Drop qemuxml2argv- prefix for qemuxml2argv test cases
tests/qemuxml2argvtest.c | 4 ++--
tests/qemuxml2xmltest.c | 2 +-
<very long list of renames/>
1481 files changed, 57 insertions(+), 57 deletions(-)
--
2.13.6
7 years
[libvirt] [PATCH v4 0/3] Move ide validation from qemuBuildControllerDevStr to qemuDomainDeviceDefValidate
by Lin Ma
Validate IDE controllers in qemuDomainDeviceDefValidate for reminding users earlier.
v3->v4:
Drop changes in tests/qemuxml2argvdata/qemuxml2argv-disk-floppy-pseries.args
Merged patch #3 and #4 for avoiding git bisect failure.
Lin Ma (3):
tests: qemuxml2argv: Use scsi controller instead of ide in pseries
tests: qemuhotplugtest: Drop ide controller in ccw
qemu_domain: Error out earlier when configuring IDE controller
incorrectly
src/qemu/qemu_command.c | 17 -----------
src/qemu/qemu_domain.c | 35 +++++++++++++++++++++-
.../qemuhotplug-base-ccw-live+ccw-virtio.xml | 4 ---
...ive-with-2-ccw-virtio+ccw-virtio-1-explicit.xml | 4 ---
...live-with-2-ccw-virtio+ccw-virtio-1-reverse.xml | 4 ---
...qemuhotplug-base-ccw-live-with-2-ccw-virtio.xml | 4 ---
...-live-with-ccw-virtio+ccw-virtio-2-explicit.xml | 4 ---
...-base-ccw-live-with-ccw-virtio+ccw-virtio-2.xml | 4 ---
.../qemuhotplug-base-ccw-live-with-ccw-virtio.xml | 4 ---
.../qemuhotplug-base-ccw-live.xml | 4 ---
.../qemuxml2argv-disk-floppy-pseries.xml | 4 +--
11 files changed, 36 insertions(+), 52 deletions(-)
--
2.14.0
7 years
[libvirt] [RESEND PATCH] qemu: Add support for hot unplug redirdev device
by Chen Hanxiao
From: Chen Hanxiao <chenhanxiao(a)gmail.com>
We lacked of hot unplugging redirdev device.
This patch add support for it.
We could use detach-device --live now.
Signed-off-by: Chen Hanxiao <chenhanxiao(a)gmail.com>
---
rebase on 3.10
src/qemu/qemu_driver.c | 4 +-
src/qemu/qemu_hotplug.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_hotplug.h | 3 ++
3 files changed, 117 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 5eae7d24a..e32f6e738 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7787,6 +7787,9 @@ qemuDomainDetachDeviceLive(virDomainObjPtr vm,
case VIR_DOMAIN_DEVICE_INPUT:
ret = qemuDomainDetachInputDevice(vm, dev->data.input);
break;
+ case VIR_DOMAIN_DEVICE_REDIRDEV:
+ ret = qemuDomainDetachRedirdevDevice(driver, vm, dev->data.redirdev);
+ break;
case VIR_DOMAIN_DEVICE_FS:
case VIR_DOMAIN_DEVICE_SOUND:
@@ -7796,7 +7799,6 @@ qemuDomainDetachDeviceLive(virDomainObjPtr vm,
case VIR_DOMAIN_DEVICE_SMARTCARD:
case VIR_DOMAIN_DEVICE_MEMBALLOON:
case VIR_DOMAIN_DEVICE_NVRAM:
- case VIR_DOMAIN_DEVICE_REDIRDEV:
case VIR_DOMAIN_DEVICE_NONE:
case VIR_DOMAIN_DEVICE_TPM:
case VIR_DOMAIN_DEVICE_PANIC:
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index cbc7af59b..87ce64505 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -4365,6 +4365,74 @@ qemuDomainRemoveInputDevice(virDomainObjPtr vm,
return 0;
}
+static int
+qemuDomainRemoveRedirdevDevice(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ virDomainRedirdevDefPtr redirdev)
+{
+ qemuDomainObjPrivatePtr priv = vm->privateData;
+ virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
+ virObjectEventPtr event;
+ char *charAlias = NULL;
+ char *tlsAlias = NULL;
+ char *secAlias = NULL;
+ ssize_t idx;
+ int ret = -1;
+
+ VIR_DEBUG("Removing redirdev device %s from domain %p %s",
+ redirdev->info.alias, vm, vm->def->name);
+
+ if (!(charAlias = qemuAliasChardevFromDevAlias(redirdev->info.alias)))
+ goto cleanup;
+
+ if (redirdev->source->type == VIR_DOMAIN_CHR_TYPE_TCP &&
+ redirdev->source->data.tcp.haveTLS == VIR_TRISTATE_BOOL_YES) {
+
+ if (!(tlsAlias = qemuAliasTLSObjFromSrcAlias(charAlias)))
+ goto cleanup;
+
+ /* Best shot at this as the secinfo is destroyed after process launch
+ * and this path does not recreate it. Thus, if the config has the
+ * secret UUID and we have a serial TCP chardev, then formulate a
+ * secAlias which we'll attempt to destroy. */
+ if (cfg->chardevTLSx509secretUUID &&
+ !(secAlias = qemuDomainGetSecretAESAlias(charAlias, false)))
+ goto cleanup;
+ }
+
+ qemuDomainObjEnterMonitor(driver, vm);
+ /* Usually device_del will remove related chardev as well,
+ * So we don't need to check its return value.
+ */
+ ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias));
+
+ if (tlsAlias)
+ ignore_value(qemuMonitorDelObject(priv->mon, tlsAlias));
+ if (secAlias)
+ ignore_value(qemuMonitorDelObject(priv->mon, secAlias));
+
+ if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ goto cleanup;
+
+ virDomainAuditRedirdev(vm, redirdev, "detach", true);
+
+ event = virDomainEventDeviceRemovedNewFromObj(vm, redirdev->info.alias);
+ qemuDomainEventQueue(driver, event);
+
+ if ((idx = virDomainRedirdevDefFind(vm->def, redirdev)) >= 0)
+ virDomainRedirdevDefRemove(vm->def, idx);
+ qemuDomainReleaseDeviceAddress(vm, &redirdev->info, NULL);
+ virDomainRedirdevDefFree(redirdev);
+
+ ret = 0;
+
+ cleanup:
+ VIR_FREE(charAlias);
+ VIR_FREE(tlsAlias);
+ VIR_FREE(secAlias);
+ return ret;
+}
+
int
qemuDomainRemoveDevice(virQEMUDriverPtr driver,
@@ -5102,6 +5170,49 @@ qemuDomainDetachWatchdog(virQEMUDriverPtr driver,
return ret;
}
+int
+qemuDomainDetachRedirdevDevice(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ virDomainRedirdevDefPtr redirdev)
+{
+ int ret = -1;
+ qemuDomainObjPrivatePtr priv = vm->privateData;
+ virDomainDefPtr vmdef = vm->def;
+ virDomainRedirdevDefPtr tmpRedirdevDef;
+ ssize_t idx;
+
+ if ((idx = virDomainRedirdevDefFind(vmdef, redirdev)) < 0) {
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s",
+ _("no matching redirdev was not found"));
+ return -1;
+ }
+
+ tmpRedirdevDef = vm->def->redirdevs[idx];
+
+ if (!tmpRedirdevDef->info.alias) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("alias not set for redirdev device"));
+ return -1;
+ }
+
+ qemuDomainMarkDeviceForRemoval(vm, &tmpRedirdevDef->info);
+
+ qemuDomainObjEnterMonitor(driver, vm);
+ if (qemuMonitorDelDevice(priv->mon, tmpRedirdevDef->info.alias) < 0) {
+ ignore_value(qemuDomainObjExitMonitor(driver, vm));
+ goto cleanup;
+ }
+ if (qemuDomainObjExitMonitor(driver, vm) < 0)
+ goto cleanup;
+
+ if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
+ ret = qemuDomainRemoveRedirdevDevice(driver, vm, tmpRedirdevDef);
+
+ cleanup:
+ qemuDomainResetDeviceRemoval(vm);
+ return ret;
+}
+
int
qemuDomainDetachNetDevice(virQEMUDriverPtr driver,
diff --git a/src/qemu/qemu_hotplug.h b/src/qemu/qemu_hotplug.h
index 3e0d618e0..6c642c4fd 100644
--- a/src/qemu/qemu_hotplug.h
+++ b/src/qemu/qemu_hotplug.h
@@ -125,6 +125,9 @@ int qemuDomainDetachShmemDevice(virQEMUDriverPtr driver,
int qemuDomainDetachWatchdog(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainWatchdogDefPtr watchdog);
+int qemuDomainDetachRedirdevDevice(virQEMUDriverPtr driver,
+ virDomainObjPtr vm,
+ virDomainRedirdevDefPtr redirdev);
int qemuDomainAttachInputDevice(virQEMUDriverPtr driver,
virDomainObjPtr vm,
--
2.14.3
7 years
[libvirt] [PATCH 1/2] libxl: add support for multiple IP addresses
by Marek Marczykowski-Górecki
vif-* scripts support it for a long time, and expect addresses to be
separated by spaces. Add appropriate support to libxl driver.
---
src/libxl/libxl_conf.c | 29 +++++++++++++++++++++++++++--
src/libxl/libxl_domain.c | 12 ------------
2 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 2a9be69..f84ffc6 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -1067,6 +1067,31 @@ libxlUpdateDiskDef(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
ignore_value(virDomainDiskSetDriver(l_disk, driver));
}
+static char *
+libxlMakeIPList(virNetDevIPInfoPtr guestIP)
+{
+ size_t i;
+ char **address_array;
+ char *ret = NULL;
+
+ if (VIR_ALLOC_N(address_array, guestIP->nips + 1) < 0)
+ return NULL;
+
+ for (i = 0; i < guestIP->nips; i++) {
+ address_array[i] = virSocketAddrFormat(&guestIP->ips[i]->address);
+ if (!address_array[i])
+ goto cleanup;
+ }
+ address_array[guestIP->nips] = NULL;
+
+ ret = virStringListJoin((const char**)address_array, " ");
+
+ cleanup:
+ while (i > 0)
+ VIR_FREE(address_array[--i]);
+ return ret;
+}
+
int
libxlMakeNic(virDomainDefPtr def,
virDomainNetDefPtr l_nic,
@@ -1144,7 +1169,7 @@ libxlMakeNic(virDomainDefPtr def,
if (VIR_STRDUP(x_nic->script, l_nic->script) < 0)
goto cleanup;
if (l_nic->guestIP.nips > 0) {
- x_nic->ip = virSocketAddrFormat(&l_nic->guestIP.ips[0]->address);
+ x_nic->ip = libxlMakeIPList(&l_nic->guestIP);
if (!x_nic->ip)
goto cleanup;
}
@@ -1160,7 +1185,7 @@ libxlMakeNic(virDomainDefPtr def,
}
if (l_nic->guestIP.nips > 0) {
- x_nic->ip = virSocketAddrFormat(&l_nic->guestIP.ips[0]->address);
+ x_nic->ip = libxlMakeIPList(&l_nic->guestIP);
if (!x_nic->ip)
goto cleanup;
}
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index d054b07..395c8a9 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -294,18 +294,6 @@ libxlDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
def->os.type != VIR_DOMAIN_OSTYPE_HVM)
dev->data.chr->targetType = VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_XEN;
- if (dev->type == VIR_DOMAIN_DEVICE_NET &&
- (dev->data.net->type == VIR_DOMAIN_NET_TYPE_BRIDGE ||
- dev->data.net->type == VIR_DOMAIN_NET_TYPE_ETHERNET ||
- dev->data.net->type == VIR_DOMAIN_NET_TYPE_NETWORK)) {
- if (dev->data.net->guestIP.nips > 1) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("multiple IP addresses not supported on device type %s"),
- virDomainNetTypeToString(dev->data.net->type));
- return -1;
- }
- }
-
if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV ||
(dev->type == VIR_DOMAIN_DEVICE_NET &&
dev->data.net->type == VIR_DOMAIN_NET_TYPE_HOSTDEV)) {
base-commit: 9f0ccc717ba9026c30ce38951a354dd66fa12e3b
--
git-series 0.9.1
7 years
[libvirt] Release of libvirt-3.10.0
by Daniel Veillard
A little bit late but it's out, the new release is tagged in git and
signed tarball and rpms have been pushed to the usual place:
ftp://libvirt.org/libvirt/
I also pushed the corresponding release of python bindings at
ftp://libvirt.org/libvirt/python/
This release brings a significant set of new features and noticeable
improvements in addition to bug fixes:
New features:
- conf: Support defining distances between virtual NUMA cells
A NUMA hardware architecture supports the notion of distances between
NUMA cells. This can now be specified using the <distances> element
within the NUMA cell configuration. Drivers which support this include
Xen and QEMU.
- Xen: Support defining vNUMA topology
Xen now supports defining a virtual NUMA topology for VMs, including
specifying distances between NUMA cells.
- qemu: Add the ability to configure HPT resizing for pSeries guests
The user can now decide whether HPT (Hash Page Table) resizing should
be enabled, disabled or required instead of leaving it up to hypervisor
defaults and negotiation between the guest and the host.
- qemu: Add vmcoreinfo feature
Starting with QEMU 2.11, the guest can save kernel debug details when
this feature is enabled and the kernel supports it. It is useful to
process kernel dump with KASLR enabled, and also provides various
kernel details to crash tools.
- conf: Move the auth and encryption definitions to disk source
Allow parsing and formatting of the auth and encryption sub-elements to
be a child of the source element. This will allow adding an auth
sub-element to a backingStore or mirror elements as a means to track
specific authentication and/or encryption needs.
Improvements:
- vbox: Add VirtualBox 5.2 support
- vbox: Add support for configuring storage controllers
The VirtualBox driver now supports the <controller> element in the
domain XML for configuring storage controllers in VBOX VMs.
Additionally, libvirt's domain XML schema was updated to allow optional
model attribute for <controller type='ide'> which is used by the VBOX
driver to set the IDE controller model to be one of 'piix4', 'piix4'
(default), or 'ich6'. Finally, with this change dumpxml generates
<controller> elements that correspond to current VBOX VM storage
controller configuration.
- vbox: Add support for attaching empty removable disks
The VirutalBox driver now supports adding CD-ROM and floppy disk
devices that do not have the disk source specified. Previously such
devices were silently ignored.
- vbox: Add support for attaching SAS storage controllers
In VirtualBox, SCSI and SAS are distinct controller types whereas
libvirt does not make such distinction. Therefore, the VBOX driver was
updated to allow attaching SAS controllers via <controller type='scsi'
model='lsisas1068'> element. If there are both SCSI and SAS controllers
present in the VBOX VM, the domain XML can associate the disk device
using the <address> element with the controller attribute, and
optionally, set the port via unit attribute.
- qemu: Generate predictable paths for qemu memory backends
In some cases management applications need to know paths passed to
memory-backend-file objects upfront. Libvirt now generates predictable
paths so applications can prepare the files if they need to do so.
- Shareable disks work properly with recent qemu
Recent qemu versions added image locking to avoid potential corruption
of disk images. This broke shareable disks with libvirt since the
feature was turned on by default in qemu. Libvirt now enables sharing
of those disks in qemu so that the image locking is not applied in that
case. Additionally libvirt now checks that shareable disks have
supported format (raw) to avoid metadata corruption.
- Improve serial console behavior on non-x86 architectures
ppc64, aarch64 and s390x guests were treating the <serial> and
<console> elements differently from x86, in some cases presenting
misleading information to the user. The behavior is now consistent
across all architectures and the information reported is always
accurate.
Bug fixes:
- vbox: Do not ignore failures to attach disk devices when defining
The define now fails and reports an error if any of the controller or
disk devices specified in the domain XML fail to attach to the
VirtualBox VM.
- vbox: Fix dumpxml to always output disk devices
The VirtualBox driver was ignoring any disk devices in dumpxml output
if there was a SAS storage controller attached to the VM.
- vbox: Fix dumpxml to always generate valid domain XML
When a VirtualBox VM has multiple disks attached, each to a different
storage controller that uses 'sd' prefix for block device names e.g.
one disk attached to SATA and one to SCSI controller, it no longer
generates XML where both would have 'sda' device name assigned. Instead
it properly assigns 'sda' and 'sdb' to those disks in the order of
appearance.
- Securely pass iSCSI authentication data
Rather than supplying the authentication data as part of the iSCSI URL
for a disk or host device, utilize the encrypted secret object to
securely pass the authentication data.
Thanks everybody for your help getting this release out, with ideas, patches,
reviews, documentations, bug reports ...
Enjoy this release, and please not that the next one (4.0.0) is scheduled
for mid january !
Daniel
--
Daniel Veillard | Red Hat Developers Tools http://developer.redhat.com/
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
7 years