[libvirt] [PATCH v6 0/2] Add support for qcow2 cache
by Liu Qing
Qcow2 small IO random write performance will drop dramatically if the l2
cache table could not cover the whole disk. This will be a lot of l2
cache table RW operations if cache miss happens frequently.
This patch exports the qcow2 driver parameter
l2-cache-size/refcount-cache-size, first added in Qemu 2.2, and
cache-clean-interval, first added in Qemu 2.5, in libvirt.
change since v4: removed unnecessary cache error check
Liu Qing (2):
conf, docs: Add qcow2 cache configuration support
qemu: add capability checking for qcow2 cache configuration
docs/formatdomain.html.in | 41 +++++++++
docs/schemas/domaincommon.rng | 35 ++++++++
src/conf/domain_conf.c | 97 ++++++++++++++++++++--
src/qemu/qemu_capabilities.c | 11 +++
src/qemu/qemu_capabilities.h | 5 ++
src/qemu/qemu_command.c | 33 ++++++++
src/qemu/qemu_driver.c | 5 ++
src/util/virstoragefile.c | 3 +
src/util/virstoragefile.h | 6 ++
tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 3 +
.../caps_2.6.0-gicv2.aarch64.xml | 3 +
.../caps_2.6.0-gicv3.aarch64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 3 +
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 3 +
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 3 +
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 3 +
tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 3 +
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 3 +
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 3 +
.../qemuxml2argv-disk-drive-qcow2-cache.args | 28 +++++++
.../qemuxml2argv-disk-drive-qcow2-cache.xml | 43 ++++++++++
tests/qemuxml2argvtest.c | 4 +
.../qemuxml2xmlout-disk-drive-qcow2-cache.xml | 43 ++++++++++
tests/qemuxml2xmltest.c | 1 +
26 files changed, 384 insertions(+), 7 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-qcow2-cache.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-qcow2-cache.xml
--
1.8.3.1
7 years
[libvirt] Release of libvirt-3.8.0
by Daniel Veillard
I tagged the tree and pushed the release earlier today, signed tarball
and rpms should be available at the usual place:
ftp://libvirt.org/libvirt/
I also pushed the associated 3.8.0 for the python bindings which can be
found in the python subdir:
ftp://libvirt.org/libvirt/
This is a balanced release with new features especially for Qemu/KVM,
a reasonable set of improvement and bugs fixes:
New features:
-------------
- qemu: Added support for cold-(un)plug of watchdog devices
- qemu: Added support for setting IP address os usernet interfaces
- qemu: Added support for Veritas Hyperscale (VxHS) block devices
- storage: Added new events for pool-build and pool-delete
Improvements:
-------------
- qemu: Set DAC permissions properly for spice rendernode
When a rendernode path is set for SPICE GL on qemu:///system, we now
correctly set DAC permissions on the device at VM startup. This is the
last remaining hurdle to let SPICE GL work for qemu:///system without
any external host changes.
- nodedev: Add switchdev offload query to NIC capabilities
Allow querying the NIC interface capabilities for the availability of
switchdev offloading (also known as kernel-forward-plane-offload).
- New CPU models for AMD and Intel
AMD EPYC and Intel Skylake-Server CPU models were added together with
their features
- Improve long waiting when saving a domain
While waiting for a write to disk to be finished, e.g. during save,
even simple operations like virsh list would be blocking due to domain
lock. This is now resolved by unlocking the domain in places where it
is not needed.
* Bug fixes:
------------
- Proper units are now used in virsh manpage for dom(mem)stats
Previously the documentation used multiples of 1000, but now it is
fixed to use multiples of 1024.
- qemu: Fix error reporting when disk attachment fails
There was a possibility for the actual error to be overridden or
cleared during the rollback.
- qemu: Fix assignment of graphics ports after daemon restart
This could be seen with newer kernels that have bug regarding
SO_REUSEADDR. After libvirtd was restarted it could assign already used
address to new guests which would make them fail to start. This is
fixed by marking used ports unavailable when reconnecting to running
QEMU domains.
- Fix message decoding which was causing a very strange bug
When parsing an RPC message with file descriptors was interrupted and
had to restart, the offset of the payload was calculated badly causing
strange issues like not being able to find a domain that was not
requested.
thanks everybody who contributed to this release with bug reports, patches,
reviews, documentation, etc ...
Enjoy the release !
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
[libvirt] [PATCH] storage: Fix incorrect parenthesis placement
by Pavel Hrdina
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1498528
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
Pushed under trivial rule.
src/storage/storage_util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
index b94b3f397c..b23b6dd1d1 100644
--- a/src/storage/storage_util.c
+++ b/src/storage/storage_util.c
@@ -1843,7 +1843,7 @@ virStorageBackendUpdateVolInfo(virStorageVolDefPtr vol,
withBlockVolFormat,
VIR_STORAGE_VOL_OPEN_DEFAULT |
VIR_STORAGE_VOL_OPEN_NOERROR,
- readflags) < 0))
+ readflags)) < 0)
return ret;
return 0;
--
2.13.6
7 years
[libvirt] [PATCH v2 0/2] Add multiqueue support for virtio-blk
by Lin Ma
The multiqueue for virtio-blk was introduced since qemu 2.7.0.
These patches supported it and update test data for it.
v1 -> v2:
Follow Ján Tomko's suggestion:
* move qemu_capabilities.{ch} to patch 1/2.
* use virStrToLong_uip instead of virStrToLong_ui.
* move virtio disk check code from formatter to virDomainDiskDefValidate.
not sure if it's the right place because Ján suggests to qemuDomain*DefValidate.
* if qemu doesn't have num-queues support, report error instead of doing nothing.
Lin Ma (2):
qemucapstest: Update test data for 'num-queues' property of virtio-blk
qemu: Support multiqueue virtio-blk
docs/formatdomain.html.in | 6 +++-
docs/schemas/domaincommon.rng | 5 ++++
src/conf/domain_conf.c | 18 ++++++++++++
src/conf/domain_conf.h | 1 +
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 7 +++++
src/qemu/qemu_domain.c | 24 +++++++++++++++
src/qemu/qemu_domain.h | 3 ++
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 +
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.ppc64le.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 +
.../qemuxml2argv-disk-virtio-drive-queues.args | 24 +++++++++++++++
.../qemuxml2argv-disk-virtio-drive-queues.xml | 34 ++++++++++++++++++++++
tests/qemuxml2argvtest.c | 2 ++
.../qemuxml2xmlout-disk-virtio-drive-queues.xml | 34 ++++++++++++++++++++++
tests/qemuxml2xmltest.c | 1 +
23 files changed, 170 insertions(+), 1 deletion(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-drive-queues.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-virtio-drive-queues.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-virtio-drive-queues.xml
--
2.9.2
7 years
[libvirt] [PATCH 0/2] qemu: command: Clean up disk command line generators (blockdev-add saga)
by Peter Krempa
Some cleanups to the command line generator so that it's easier to
splice in the new blockdev-add stuff.
Peter Krempa (2):
qemu: command: Separate validation from command line building for
-drive
qemu: command: Move PPC fdc check to domain validation
src/qemu/qemu_command.c | 295 ++++++++++++++++++++++++++----------------------
src/qemu/qemu_process.c | 11 +-
2 files changed, 171 insertions(+), 135 deletions(-)
--
2.14.1
7 years
[libvirt] [PATCH 0/3] Couple of <interface/> improvements
by Michal Privoznik
https://bugzilla.redhat.com/show_bug.cgi?id=1343919
Michal Privoznik (3):
qemuParseCommandLineNet: Make more readable
virmacaddr: Track if MAC address is autogenerated
virDomainNetFindIdx: Ignore auto generated MAC addresses
src/conf/domain_conf.c | 45 +++++++++++++++++++++++++++++++++----------
src/qemu/qemu_parse_command.c | 32 ++++++++++++------------------
src/util/virmacaddr.c | 5 +++++
src/util/virmacaddr.h | 2 ++
tests/bhyveargv2xmlmock.c | 1 +
tests/bhyvexml2argvmock.c | 1 +
6 files changed, 56 insertions(+), 30 deletions(-)
--
2.13.5
7 years
[libvirt] [PATCH v4 00/15] Use secret objects to pass iSCSI passwords
by John Ferlan
v3: https://www.redhat.com/archives/libvir-list/2017-September/msg00881.html
Difference with v3:
Add patch 3 to perform virStorageSourceCopy for qemu and storage source
private data.
Adjust the move encinfo from private disk to private disk src to handle
the Copy for the @encinfo too
Repeated from cover of v3:
v2: https://www.redhat.com/archives/libvir-list/2017-September/msg00466.html
Changes since v2:
* Former Patch 1 & 2 were pushed
* New Patch 1 is former Patches 3 and parts of 4 combined appropriately
-> Allow <auth> under <disk> or <source> - keep track of where it was found
so that format prints in the right place
-> Cleaned up the tests and new xml/args files
* Patch 2 is part of the former patch 6 - just the new _virStorageSource
* Patch 3 is new - to introduced an allocator for domain_conf to create
a _virStorageSource
* Patch 4 is new - as stated found that the @diskPriv->encinfo wasn't
cleaned up properly
* Patch 5 is the rest of the former patch 6
* Patch 6 is the former patch 7 with some minor adjustments to allow
<encryption> to follow <auth> and be both child of <disk> and <source>
* Patch 7 is the former patch 10 with minor change to perform free of
encinfo properly (e.g. from patch 4)
* Patch 8 is former patch 5 and 9 combined
* Patch 9 is new - to use the virStorageSource for iscsisrc instead of
just three fields we wanted
* Patch 10 is new to alter the existing hostdevPriv to use diskSrcPriv
* Patch 11 is new to remove the hostdevPriv as it's no longer necesary
* Patch 12 is new to split up a change in qemuBuildSCSIiSCSIHostdevDrvStr
from the last patch
* Patch 13 is the former patch 13
* Patch 14 is altered to accomodate the hostdev usage if virStorageSource
for iscsisrc->src instead of that hack that was there before.
John Ferlan (15):
conf: Add/Allow parsing the auth in the disk source
qemu: Introduce privateData for _virStorageSource
qemu: Introduce qemuDomainStorageSourceCopy
conf: Introduce virDomainDiskStorageSourceNew
qemu: Add missing encinfo cleanup
qemu: Relocate qemuDomainSecretInfoPtr from disk private
conf: Add/Allow parsing the encryption in the disk source
qemu: Move encinfo from private disk to private disk src
docs: Add news article regarding auth/encryption placement
conf,qemu: Replace iscsisrc fields with virStorageSourcePtr
qemu: Use private disksrc for iscsi instead of private hostdev
qemu: Remove private hostdev
qemu: Refactor qemuBuildSCSIiSCSIHostdevDrvStr slightly
qemu: Get capabilities to use iscsi password-secret argument
qemu: Use secret objects to pass iSCSI passwords
docs/formatdomain.html.in | 82 ++++---
docs/news.xml | 13 ++
docs/schemas/domaincommon.rng | 48 +++-
src/conf/domain_conf.c | 255 ++++++++++++++++-----
src/conf/domain_conf.h | 10 +-
src/lxc/lxc_native.c | 2 +-
src/qemu/qemu_block.c | 64 +++++-
src/qemu/qemu_blockjob.c | 2 +-
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 84 +++++--
src/qemu/qemu_command.h | 3 +-
src/qemu/qemu_domain.c | 163 +++++++++----
src/qemu/qemu_domain.h | 37 ++-
src/qemu/qemu_driver.c | 8 +-
src/qemu/qemu_hotplug.c | 71 +++++-
src/qemu/qemu_parse_command.c | 4 +-
src/util/virstoragefile.c | 2 +
src/util/virstoragefile.h | 5 +
src/vbox/vbox_common.c | 2 +-
src/xenconfig/xen_common.c | 2 +-
src/xenconfig/xen_sxpr.c | 2 +-
src/xenconfig/xen_xl.c | 2 +-
.../qemuargv2xml-disk-drive-network-rbd-auth.xml | 6 +-
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.ppc64le.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 +
...xml2argv-disk-drive-network-iscsi-auth-AES.args | 41 ++++
...uxml2argv-disk-drive-network-iscsi-auth-AES.xml | 43 ++++
...ml2argv-disk-drive-network-source-auth-both.xml | 51 +++++
...emuxml2argv-disk-drive-network-source-auth.args | 32 +++
...qemuxml2argv-disk-drive-network-source-auth.xml | 45 ++++
...ml2argv-hostdev-scsi-virtio-iscsi-auth-AES.args | 45 ++++
...xml2argv-hostdev-scsi-virtio-iscsi-auth-AES.xml | 48 ++++
.../qemuxml2argv-luks-disks-source-both.xml | 40 ++++
.../qemuxml2argv-luks-disks-source.args | 62 +++++
.../qemuxml2argv-luks-disks-source.xml | 81 +++++++
tests/qemuxml2argvtest.c | 14 ++
...muxml2xmlout-disk-drive-network-source-auth.xml | 49 ++++
.../qemuxml2xmlout-luks-disks-source.xml | 84 +++++++
.../qemuxml2xmlout-luks-disks.xml | 46 +++-
tests/qemuxml2xmltest.c | 2 +
tests/virhostdevtest.c | 2 +-
tests/virstoragetest.c | 6 +
46 files changed, 1346 insertions(+), 220 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth-AES.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-iscsi-auth-AES.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-source-auth-both.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-source-auth.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-source-auth.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi-auth-AES.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-scsi-virtio-iscsi-auth-AES.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-luks-disks-source-both.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-luks-disks-source.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-luks-disks-source.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-source-auth.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-luks-disks-source.xml
mode change 120000 => 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-luks-disks.xml
--
2.13.5
7 years
[libvirt] [PATCH] tests: Do not ignore mode parameter in mocked open()
by Jiri Denemark
From: Luyao Huang <lhuang(a)redhat.com>
This is normally not an issue since the tests which use mocked open() do
not create files. But once coverage build is enabled, gcov_open will use
O_CREATE and real_open will read random data rather than the actual mode
argument.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
tests/virfilewrapper.c | 13 ++++++++++++-
tests/virusbmock.c | 15 ++++++++++++++-
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/tests/virfilewrapper.c b/tests/virfilewrapper.c
index fede7b2e89..1d1d182708 100644
--- a/tests/virfilewrapper.c
+++ b/tests/virfilewrapper.c
@@ -257,10 +257,21 @@ int open(const char *path, int flags, ...)
{
int ret = -1;
char *newpath = NULL;
+ va_list ap;
+ mode_t mode = 0;
PATH_OVERRIDE(newpath, path);
- ret = real_open(newpath, flags);
+ /* The mode argument is mandatory when O_CREAT is set in flags,
+ * otherwise the argument is ignored.
+ */
+ if (flags & O_CREAT) {
+ va_start(ap, flags);
+ mode = va_arg(ap, mode_t);
+ va_end(ap);
+ }
+
+ ret = real_open(newpath, flags, mode);
VIR_FREE(newpath);
diff --git a/tests/virusbmock.c b/tests/virusbmock.c
index 8d60664944..f430a2edad 100644
--- a/tests/virusbmock.c
+++ b/tests/virusbmock.c
@@ -87,13 +87,26 @@ int open(const char *pathname, int flags, ...)
{
char *path;
int ret;
+ va_list ap;
+ mode_t mode = 0;
init_syms();
path = get_fake_path(pathname);
if (!path)
return -1;
- ret = realopen(path, flags);
+
+ /* The mode argument is mandatory when O_CREAT is set in flags,
+ * otherwise the argument is ignored.
+ */
+ if (flags & O_CREAT) {
+ va_start(ap, flags);
+ mode = va_arg(ap, mode_t);
+ va_end(ap);
+ }
+
+ ret = realopen(path, flags, mode);
+
VIR_FREE(path);
return ret;
}
--
2.14.2
7 years
[libvirt] [PATCH] util: Free a pointer in virPolkitCheckAuth
by Kothapally Madhu Pavan
Free DBusMessage pointer in virPolkitCheckAuth
Signed-off-by: Kothapally Madhu Pavan <kmp(a)linux.vnet.ibm.com>
---
src/util/virpolkit.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/util/virpolkit.c b/src/util/virpolkit.c
index c735ca9..4559431 100644
--- a/src/util/virpolkit.c
+++ b/src/util/virpolkit.c
@@ -138,6 +138,7 @@ int virPolkitCheckAuth(const char *actionid,
cleanup:
virStringListFreeCount(retdetails, nretdetails);
+ virDBusMessageUnref(reply);
return ret;
}
--
1.8.3.1
7 years
[libvirt] [PATCH] Post-release version bump to 3.9.0
by Peter Krempa
---
Pushed.
configure.ac | 2 +-
docs/news.xml | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index d817975a5..4f420cf8d 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.8.0], [libvir-list(a)redhat.com], [], [http://libvirt.org])
+AC_INIT([libvirt], [3.9.0], [libvir-list(a)redhat.com], [], [http://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 222cc03ea..72e15567c 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -33,6 +33,14 @@
-->
<libvirt>
+ <release version="v3.9.0" date="unreleased">
+ <section title="New features">
+ </section>
+ <section title="Improvements">
+ </section>
+ <section title="Bug fixes">
+ </section>
+ </release>
<release version="v3.8.0" date="2017-10-04">
<section title="New features">
<change>
--
2.14.1
7 years