Release of libvirt-6.2.0
by Daniel Veillard
Mea-culpa I forgot to push RC2 on Tuesday, rather than pushing the
release off by 2 more days, I decided to push the release today to stay
on schedule. As a result 6.2.0 is out, tagged in git and source tarball
and rpm are available at the usual place:
https://libvirt.org/sources/
I also pushed a release of the python binding with minimal changes that
can be found at:
https://libvirt.org/sources/libvirt/
New features:
- qemu: NVDIMM support for pSeries guests
QEMU 5.0 implements NVDIMM memory support for pSeries guests. This is
done by adding an 'uuid' element in the memory XML, which can either be
provided in the XML or, if omitted, generated automatically.
- qemu: Add virtiofs support
This feature, introduced in QEMU 4.2, is a more modern alternative to
virtio-9p, which is exposed through the same <filesystem/> element.
- admin: Support reloading TLS certificates
After renewing TLS certificates, it was usually necessary to restart
libvirtd for the new ones to be loaded: now the same result can be
obtained without restarting the daemon by using virt-admin
server-update-tls.
Removed features:
- Removed support for INI style of comments
With switching of our internal code to GLib, parsing of client
authentication config files is handed over to GLib which does not
support INI style of comments starting with a semicolon (;). Use number
sign (#) instead.
* Improvements
- qemu: Don't compare local and remote hostnames on migration
This check was introduced to prevent same-host migration, but did not
work as expected when multiple libvirtd instances were running on the
same host but in different containers. With this release, the host UUID
(which should be unique to the container) is checked instead.
- qemu: Use per-VM event loops
Instead of using a single even loop to process communication with the
QEMU monitor and guest agent, create a separate one for each VM. This
helps with scalability and prevents scenarios where a single
malfunctioning VM could affect all those running on the same host.
- qemu: Support migration with SLIRP helper interface
With QEMU 5.0, a new D-Bus backend allows migration of external
processes. When needed, libvirt will start a per-vm D-Bus bus, and
migrate the slirp-helper along with QEMU.
Bug fixes:
- qemu: Open backing chain late for shallow block copy reusing external images
With introduction of -blockdev for QEMU storage configuration in
libvirt-5.10 we've started opening the backing chain of the
destination/mirror of a virDomainBlockcopy started with
VIR_DOMAIN_BLOCK_COPY_REUSE_EXT | VIR_DOMAIN_BLOCK_COPY_SHALLOW flags
when starting the job rather than when virDomainBlockJobAbort with
VIR_DOMAIN_BLOCK_JOB_ABORT_PIVOT is issued. For users depending on this
undocumented quirky pre-blockdev behaviour this caused a regression as
the backing chain could not be modified while the copy of the top image
was progressing due to QEMU image locking. Note that this fix also
requires qemu-5.0 while -blockdev is used starting from QEMU-4.2.
- Don't generate machine names containing dots
Even though the guest name containing dots is not a problem for libvirt
itself, we need to strip them out when registering with machined
because of the latter's requirements.
Thanks everybody who contributed to this release be it with
bug reports, fixes, reviews, documentation, etc ...
Enjoy the release, stay safe!
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/
4 years, 6 months
SRPMs as download artifacts (was: Re: libvirt Source RPMs for CentOS or RHEL?)
by Andrea Bolognani
[moving to libvir-list]
On Thu, 2020-04-02 at 09:41 +0100, Daniel P. Berrangé wrote:
> On Thu, Apr 02, 2020 at 08:47:30AM +0800, FuLong Wang wrote:
> > Do we have libvirt source rpms (version above 5.9.0) for CentOS or RHEL?
> >
> > I only find source rpms for fedora in below public link.
> >
> > https://libvirt.org/sources/
>
> Please ignore all the RPMs you see there, they really shouldn't be
> used.
Can we just stop generating them?
And get rid of all the existing ones, especially silly stuff like
the binary RPMs from 2013 targeting Fedora 17. This will have the
additional benefit of making it easier to find what you're looking
for, since it will no longer be hidden among a heap of irrelevant
garbage.
> The source tarballs (eg libvirt-5.9.0.tar.xz) contain a spec file
> inside.
>
> This means you can generate RPMs for your precise distro using something
> akin to the following commands:
>
> $ rpmbuild -ts libvirt-5.9.0.tar.xz
> $ sudo dnf install redhat-rpm-config
> $ sudo dnf builddep $HOME/rpmbuild/SRPMS/libvirt-5.9.0-1.fc31.src.rpm
> $ rpmbuild --rebuild $HOME/rpmbuild/SRPMS/libvirt-5.9.0-1.fc31.src.rpm
I think it would make sense to document this quick procedure
somewhere, if we haven't already. There's some obvious overlap with
our 'make rpm' target, but that one requires unpacking the release
archive and running configure beforehand, so it's not quite as nice
for someone who just wants to quickly get a working set of RPMs.
--
Andrea Bolognani / Red Hat / Virtualization
4 years, 6 months
disable passwd access to spice and specify disable-ticketing
by Vasiliy Tolstov
Hi! i need to have passwordless auth to spice (because it is restricted to
127.0.0.1 and nobody can connect to it, in feature i want to use it via
unix socket).
I'm checking docs at libvirt site and don't see any disable-ticketing
options.
SO how can I pass this option and allow access without a password to spice?
Thanks!
--
Vasiliy Tolstov,
e-mail: v.tolstov(a)selfip.ru
4 years, 6 months
[libvirt PATCH 0/8] daemons: Improve timeout handling, plus some cleanups
by Andrea Bolognani
The main motivation for this series is explained in patch 2/8, but
of course in the process I managed to locate a number of yaks that
were looking quite hairy indeed...
Andrea Bolognani (8):
daemons: Support --timeout 0
Revert "remote: move timeout arg into sysconf file"
Revert "logging: Use default timeout of 120 seconds for virtlogd"
logging, locking: Set default timeout of 120 seconds
Add sysconf files for all daemons
spec: Include new sysconf files
qemu: Allow audio driver override in virtqemud
remote: Drop KRB5_KTNAME override
libvirt.spec.in | 11 +++++++++++
src/interface/Makefile.inc.am | 2 ++
src/interface/virtinterfaced.service.in | 3 ++-
src/interface/virtinterfaced.sysconf | 3 +++
src/libxl/Makefile.inc.am | 2 ++
src/libxl/virtxend.service.in | 3 ++-
src/libxl/virtxend.sysconf | 3 +++
src/locking/lock_daemon.c | 6 +++---
src/locking/virtlockd.service.in | 2 +-
src/logging/log_daemon.c | 6 +++---
src/logging/virtlogd.service.in | 2 +-
src/logging/virtlogd.sysconf | 2 +-
src/lxc/Makefile.inc.am | 2 ++
src/lxc/virtlxcd.service.in | 3 ++-
src/lxc/virtlxcd.sysconf | 3 +++
src/network/Makefile.inc.am | 2 ++
src/network/virtnetworkd.service.in | 3 ++-
src/network/virtnetworkd.sysconf | 3 +++
src/node_device/Makefile.inc.am | 2 ++
src/node_device/virtnodedevd.service.in | 3 ++-
src/node_device/virtnodedevd.sysconf | 3 +++
src/nwfilter/Makefile.inc.am | 2 ++
src/nwfilter/virtnwfilterd.service.in | 3 ++-
src/nwfilter/virtnwfilterd.sysconf | 3 +++
src/qemu/Makefile.inc.am | 2 ++
src/qemu/virtqemud.service.in | 3 ++-
src/qemu/virtqemud.sysconf | 12 ++++++++++++
src/remote/Makefile.inc.am | 5 ++++-
src/remote/libvirtd.sasl | 4 +---
src/remote/libvirtd.service.in | 6 +++++-
src/remote/libvirtd.sysconf | 15 +++------------
src/remote/remote_daemon.c | 6 +++---
src/remote/virtproxyd.service.in | 3 ++-
src/remote/virtproxyd.sysconf | 3 +++
src/secret/Makefile.inc.am | 2 ++
src/secret/virtsecretd.service.in | 3 ++-
src/secret/virtsecretd.sysconf | 3 +++
src/storage/Makefile.inc.am | 2 ++
src/storage/virtstoraged.service.in | 3 ++-
src/storage/virtstoraged.sysconf | 3 +++
src/vbox/Makefile.inc.am | 2 ++
src/vbox/virtvboxd.service.in | 3 ++-
src/vbox/virtvboxd.sysconf | 3 +++
src/vz/Makefile.inc.am | 2 ++
src/vz/virtvzd.service.in | 3 ++-
src/vz/virtvzd.sysconf | 3 +++
46 files changed, 127 insertions(+), 41 deletions(-)
create mode 100644 src/interface/virtinterfaced.sysconf
create mode 100644 src/libxl/virtxend.sysconf
create mode 100644 src/lxc/virtlxcd.sysconf
create mode 100644 src/network/virtnetworkd.sysconf
create mode 100644 src/node_device/virtnodedevd.sysconf
create mode 100644 src/nwfilter/virtnwfilterd.sysconf
create mode 100644 src/qemu/virtqemud.sysconf
create mode 100644 src/remote/virtproxyd.sysconf
create mode 100644 src/secret/virtsecretd.sysconf
create mode 100644 src/storage/virtstoraged.sysconf
create mode 100644 src/vbox/virtvboxd.sysconf
create mode 100644 src/vz/virtvzd.sysconf
--
2.25.1
4 years, 6 months
[PATCH 0/2] Optimize initialization of storage files
by Peter Krempa
See 2/2.
Peter Krempa (2):
qemuSecurityChownCallback: Remove 'cleanup' section
qemuSecurityChownCallback: Don't initialize storage file subsystem for
local file
src/qemu/qemu_driver.c | 31 +++++++++++++------------------
1 file changed, 13 insertions(+), 18 deletions(-)
--
2.24.1
4 years, 6 months
[PATCH 0/5] qemu: caps: Bump capabilities to qemu-5.0.0-rc1
by Peter Krempa
Peter Krempa (5):
qemumonitorjsontest: Space out test name concatenation
qemuMonitorTestProcessCommandDefaultValidate: Output validator output
to stderr
qemumonitorjsontest: AddNetdev: Use real variant
syntax-check: Exempt tests/qemucapabilitiesdata from
'sc_prohibit_devname'
qemu: capabilities: Update qemu-5.0.0 capabilities for x86_64 to rc1
build-aux/syntax-check.mk | 2 +-
.../caps_5.0.0.x86_64.replies | 2314 +++++++++++------
.../caps_5.0.0.x86_64.xml | 144 +-
tests/qemumonitorjsontest.c | 6 +-
tests/qemumonitortestutils.c | 13 +-
5 files changed, 1707 insertions(+), 772 deletions(-)
--
2.25.1
4 years, 6 months
[PATCH 0/3] Fix use-after-free in block job reconnection code
by Peter Krempa
Peter Krempa (3):
qemu: migration: Don't use return value of qemuBlockJobUpdate
qemuBlockJobUpdate: Remove return value
qemuBlockJobRefreshJobs: Warn readers that 'job' may be invalid after
update
src/qemu/qemu_blockjob.c | 9 +++------
src/qemu/qemu_blockjob.h | 7 ++++---
src/qemu/qemu_migration.c | 17 +++++++----------
3 files changed, 14 insertions(+), 19 deletions(-)
--
2.24.1
4 years, 6 months
[PATCH for 6.2.0] qemuDomainSnapshotDiskPrepareOne: Fix logic of relative backing store update
by Peter Krempa
Commit 2ace7a87a8aced68c250 introduced a logic bug by an improperly
modified condition where we'd skip to the else branch when reusing of
external images was requested and blockdev is available.
The original intentions were to skip the backing store update with
blockdev.
Fix it by only asserting the boolean which was used to track whether we
support update of the backing store only when blockdev is not present
along with the appropriate rename.
https://bugzilla.redhat.com/show_bug.cgi?id=1820016
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_driver.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 78024614cf..ff97f10f11 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15129,7 +15129,7 @@ qemuDomainSnapshotDiskPrepareOne(virQEMUDriverPtr driver,
{
virDomainDiskDefPtr persistdisk;
bool supportsCreate;
- bool supportsBacking;
+ bool updateRelativeBacking = false;
dd->disk = disk;
@@ -15158,19 +15158,22 @@ qemuDomainSnapshotDiskPrepareOne(virQEMUDriverPtr driver,
}
supportsCreate = virStorageFileSupportsCreate(dd->src);
- supportsBacking = virStorageFileSupportsBackingChainTraversal(dd->src);
- if (supportsCreate || supportsBacking) {
+ /* relative backing store paths need to be updated so that relative
+ * block commit still works. With blockdev we must update it when doing
+ * commit anyways so it's skipped here */
+ if (!blockdev &&
+ virStorageFileSupportsBackingChainTraversal(dd->src))
+ updateRelativeBacking = true;
+
+ if (supportsCreate || updateRelativeBacking) {
if (qemuDomainStorageFileInit(driver, vm, dd->src, NULL) < 0)
return -1;
dd->initialized = true;
- /* relative backing store paths need to be updated so that relative
- * block commit still works. With blockdev we must update it when doing
- * commit anyways so it's skipped here */
- if (reuse && !blockdev) {
- if (supportsBacking) {
+ if (reuse) {
+ if (updateRelativeBacking) {
g_autofree char *backingStoreStr = NULL;
if (virStorageFileGetBackingStoreStr(dd->src, &backingStoreStr) < 0)
--
2.25.1
4 years, 6 months
Re: [PATCH 5/5] cpu: Introduce getHost supoort for ARM
by Daniel P. Berrangé
Re-adding libvir-list to the CC line.
On Mon, Mar 30, 2020 at 08:20:44PM +0800, Zhenyu Zheng wrote:
> Hi, yes, I think we can do that using inline assembly, I can check it out
> if you think it is a better solution,
> do you have any suggestions for the features(cpu flags) part? It seems that
> ARM does not have a location/register
> that holds all the flags, seems that we have to query alot of different
> registers to check for features, which could
> be quite messy.
Perhaps there is a way to record the location/register info in the XML
against each feature name, so that the code itself can stay simple and
just be driven from the metadata ?
I'm not familiar enough with Arm to know how feasiable this is though,
so will have to leave that to others to give an opinion.
>
> On Mon, Mar 30, 2020 at 8:01 PM Daniel P. Berrangé <berrange(a)redhat.com>
> wrote:
>
> > On Mon, Mar 30, 2020 at 07:32:36PM +0800, Zhenyu Zheng wrote:
> > > Hi Daniel,
> > >
> > > Thanks for thre review and reply, my first implementation was going to
> > > gather data from /proc/cpuinfo, but unlike X86, we can only get this kind
> > > of info:
> > >
> > > processor : 0
> > > BogoMIPS : 200.00
> > > Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
> > > CPU implementer : 0x43
> > > CPU architecture: 8
> > > CPU variant : 0x1
> > > CPU part : 0x0a1
> > > CPU revision : 1
> > >
> > > so we have to perform some translation to perform human readable
> > > information, and I mentioned that 'lscpu' has done that too. So Andrea
> > > Bolognani
> > > suggested that maybe we can use it directly, to avoid re-implement the
> > > translation. Here is the discussion:
> > > https://www.redhat.com/archives/libvir-list/2020-March/msg00812.html
> >
> > On x86 we get majority of info straight from calling the CPUID instruction,
> > not /proc/cpuinfo, and use our XML data files in src/cpu_map to translate
> > things into human readable names. I see you're adding XML data files
> > with names in the earlier patches. Is it possible to add the hex values
> > for the CPU implementer/architecture/variant/part to these XML files so
> > we can directly map them in libvirt, in the same way we do for x86
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
4 years, 6 months