[libvirt] [PATCH 0/6] libxl: add support of pvusb controller
by Chunyan Liu
This patch series is to add pvusb controller support in libxl driver.
It should be applied on previous pvusb device support patch series.
Chunyan Liu (6):
extend usb controller model to support xen pvusb
libxl: support USB controllers in creation time
libxl: support usb controller hotplug
libxl: check available controller and port when hotplugging USB device
xenconfig: add conversion of usb controller config to and from xml
xlconfigtest: add test for usb controller conversion
docs/formatdomain.html.in | 6 +-
docs/schemas/domaincommon.rng | 4 +
src/conf/domain_conf.c | 4 +
src/conf/domain_conf.h | 4 +
src/libxl/libxl_conf.c | 94 +++++++++++++++++
src/libxl/libxl_conf.h | 4 +
src/libxl/libxl_driver.c | 176 +++++++++++++++++++++++++++++++
src/qemu/qemu_command.c | 4 +
src/xenconfig/xen_xl.c | 203 ++++++++++++++++++++++++++++++++++++
tests/xlconfigdata/test-usbctrl.cfg | 13 +++
tests/xlconfigdata/test-usbctrl.xml | 32 ++++++
tests/xlconfigtest.c | 1 +
12 files changed, 544 insertions(+), 1 deletion(-)
create mode 100644 tests/xlconfigdata/test-usbctrl.cfg
create mode 100644 tests/xlconfigdata/test-usbctrl.xml
--
2.1.4
8 years, 6 months
[libvirt] [PATCH V2 0/4] libxl: support pvusb
by Chunyan Liu
This patch series is to support pvusb in libxl driver.
---
Changes in v2:
* add LIBXL_HAVE_PVUSB check
* add convertion of domxml USB config to/from xl.cfg
* address other comments
Chunyan Liu (4):
libxl: support creating guest with USB hostdev
libxl: support hotplug USB host device
Add convertion domxml USB config to/from xl.cfg
xlconfigtest: add test on USB convertion
src/libxl/libxl_conf.c | 74 ++++++++++++++++++++
src/libxl/libxl_conf.h | 5 ++
src/libxl/libxl_domain.c | 16 ++++-
src/libxl/libxl_driver.c | 144 +++++++++++++++++++++++++++++++++++++-
src/xenconfig/xen_xl.c | 151 ++++++++++++++++++++++++++++++++++++++++
tests/xlconfigdata/test-usb.cfg | 13 ++++
tests/xlconfigdata/test-usb.xml | 35 ++++++++++
tests/xlconfigtest.c | 1 +
8 files changed, 435 insertions(+), 4 deletions(-)
create mode 100644 tests/xlconfigdata/test-usb.cfg
create mode 100644 tests/xlconfigdata/test-usb.xml
--
2.1.4
8 years, 6 months
[libvirt] [PATCH V3 0/6] libxl: Add support for UEFI using OVMF
by Jim Fehlig
This is essentially a V3 of
https://www.redhat.com/archives/libvir-list/2016-April/msg01358.html
To avoid code duplication in that series, I proposed adding
a virFirmware object that could be used by multiple drivers
https://www.redhat.com/archives/libvir-list/2016-May/msg01370.html
mprivozn ACK'ed that series, but I deferred committing it until
1.3.5 was released since it's not all that useful without
accompanying use by another driver.
Jim Fehlig (6):
driver config: Introduce virFirmware object
libxl: add default firmwares to driver config object
libxl: introduce libxl_capabilities.{ch}
libxl: implement connectGetDomainCapabilities
xenconfig: support bios=ovmf xl.cfg
libxl: Add support for ovmf firmware
po/POTFILES.in | 2 +
src/Makefile.am | 12 +-
src/libvirt_private.syms | 6 +
src/libxl/libxl_capabilities.c | 598 +++++++++++++++++++++++++++++
src/libxl/libxl_capabilities.h | 57 +++
src/libxl/libxl_conf.c | 460 ++--------------------
src/libxl/libxl_conf.h | 22 +-
src/libxl/libxl_domain.c | 1 +
src/libxl/libxl_driver.c | 75 ++++
src/qemu/qemu_capabilities.c | 22 +-
src/qemu/qemu_capabilities.h | 5 +-
src/qemu/qemu_conf.c | 127 +-----
src/qemu/qemu_conf.h | 7 +-
src/qemu/qemu_driver.c | 2 +-
src/qemu/qemu_process.c | 6 +-
src/util/virfirmware.c | 137 +++++++
src/util/virfirmware.h | 51 +++
src/xenconfig/xen_xl.c | 37 +-
tests/Makefile.am | 5 +
tests/domaincapsschemadata/libxl-xenfv.xml | 68 ++++
tests/domaincapsschemadata/libxl-xenpv.xml | 58 +++
tests/domaincapstest.c | 64 ++-
tests/testutils.c | 16 +
tests/testutils.h | 2 +
tests/testutilsxen.h | 1 +
tests/xlconfigdata/test-fullvirt-ovmf.cfg | 26 ++
tests/xlconfigdata/test-fullvirt-ovmf.xml | 58 +++
tests/xlconfigtest.c | 90 ++++-
28 files changed, 1415 insertions(+), 600 deletions(-)
create mode 100644 src/libxl/libxl_capabilities.c
create mode 100644 src/libxl/libxl_capabilities.h
create mode 100644 src/util/virfirmware.c
create mode 100644 src/util/virfirmware.h
create mode 100644 tests/domaincapsschemadata/libxl-xenfv.xml
create mode 100644 tests/domaincapsschemadata/libxl-xenpv.xml
create mode 100644 tests/xlconfigdata/test-fullvirt-ovmf.cfg
create mode 100644 tests/xlconfigdata/test-fullvirt-ovmf.xml
--
2.1.4
8 years, 6 months
[libvirt] [PATCH python 0/2] Bindings for storage pool lifecycle events
by Jovanka Gulicoska
Python buindings and tests for storage pool lifecycle events API.
Function storageDetailToString() is not implemented for now.
Jovanka Gulicoska (2):
Python binding for storage pool lifecycle events API
event-test: Add storage pool lifecycle event tests
examples/event-test.py | 18 +++++
generator.py | 2 +
libvirt-override-virConnect.py | 35 ++++++++++
libvirt-override.c | 153 +++++++++++++++++++++++++++++++++++++++++
sanitytest.py | 3 +-
5 files changed, 210 insertions(+), 1 deletion(-)
--
2.5.5
8 years, 6 months
[libvirt] [PATCH] virt-host-validate: improve tests for arm/aarch64
by Riku Voipio
ARM/Aarch64 /proc/cpuinfo has no virtualization related flags.
Refactor the Qemu/KVM test a bit:
1) run the "for hardware virtualization" test only on plaforms with known
cpuinfo flags (x86, s390)
2) test for /dev/kvm also on platforms where no cpu flags are set
Finally Add a more generic error hint message for non-x86 plaforms
when /dev/kvm is missing.
Signed-off-by: Riku Voipio <riku.voipio(a)linaro.org>
---
tools/virt-host-validate-qemu.c | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/tools/virt-host-validate-qemu.c b/tools/virt-host-validate-qemu.c
index 56ec3c7..520c8ed 100644
--- a/tools/virt-host-validate-qemu.c
+++ b/tools/virt-host-validate-qemu.c
@@ -32,8 +32,9 @@ int virHostValidateQEMU(void)
virBitmapPtr flags;
int ret = 0;
bool hasHwVirt = false;
-
- virHostMsgCheck("QEMU", "%s", _("for hardware virtualization"));
+ bool hasVirtFlag = false;
+ char *kvmhint = _("Check that CPU and firmware supports virtualization "
+ "and kvm module is loaded");
if (!(flags = virHostValidateGetCPUFlags()))
return -1;
@@ -41,12 +42,16 @@ int virHostValidateQEMU(void)
switch (virArchFromHost()) {
case VIR_ARCH_I686:
case VIR_ARCH_X86_64:
+ hasVirtFlag = true;
+ kvmhint =_("Check that the 'kvm-intel' or 'kvm-amd' modules are "
+ "loaded & the BIOS has enabled virtualization");
if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SVM) ||
virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_VMX))
hasHwVirt = true;
break;
case VIR_ARCH_S390:
case VIR_ARCH_S390X:
+ hasVirtFlag = true;
if (virBitmapIsBitSet(flags, VIR_HOST_VALIDATE_CPU_FLAG_SIE))
hasHwVirt = true;
break;
@@ -54,21 +59,27 @@ int virHostValidateQEMU(void)
hasHwVirt = false;
}
- if (hasHwVirt) {
- virHostMsgPass();
+ if (hasVirtFlag) {
+ virHostMsgCheck("QEMU", "%s", _("for hardware virtualization"));
+ if (hasHwVirt)
+ virHostMsgPass();
+ else {
+ virHostMsgFail(VIR_HOST_VALIDATE_FAIL,
+ _("Only emulated CPUs are available, performance will be significantly limited"));
+ ret = -1;
+ }
+ }
+
+ if (hasHwVirt || !hasVirtFlag) {
if (virHostValidateDeviceExists("QEMU", "/dev/kvm",
VIR_HOST_VALIDATE_FAIL,
- _("Check that the 'kvm-intel' or 'kvm-amd' modules are "
- "loaded & the BIOS has enabled virtualization")) < 0)
+ kvmhint) <0)
ret = -1;
else if (virHostValidateDeviceAccessible("QEMU", "/dev/kvm",
VIR_HOST_VALIDATE_FAIL,
_("Check /dev/kvm is world writable or you are in "
"a group that is allowed to access it")) < 0)
ret = -1;
- } else {
- virHostMsgFail(VIR_HOST_VALIDATE_WARN,
- _("Only emulated CPUs are available, performance will be significantly limited"));
}
virBitmapFree(flags);
--
2.1.4
8 years, 6 months
[libvirt] [PATCH python] Post-release version bump to 2.0.0
by Daniel P. Berrange
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
Pushed under trivial rule.
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 956609d..099b1e0 100755
--- a/setup.py
+++ b/setup.py
@@ -305,7 +305,7 @@ class my_clean(clean):
_c_modules, _py_modules = get_module_lists()
setup(name = 'libvirt-python',
- version = '1.3.5',
+ version = '2.0.0',
url = 'http://www.libvirt.org',
maintainer = 'Libvirt Maintainers',
maintainer_email = 'libvir-list(a)redhat.com',
--
2.5.5
8 years, 6 months
[libvirt] [PATCH] docs: document rng backend path restrictions of older libvirt
by Ján Tomko
Commit 67f2b72 removed the path restrictions for rng backend,
along with the documentation of the restriction.
Restore the documentation for users still using older libvirt.
https://bugzilla.redhat.com/show_bug.cgi?id=1074464
---
docs/formatdomain.html.in | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index daa0891..17e563c 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -6356,9 +6356,10 @@ qemu-kvm -net nic,model=? /dev/null
<p>
This backend type expects a non-blocking character device as
input. The file name is specified as contents of the
- <code>backend</code> element. When no file name is specified
- the hypervisor default is used. For qemu, the default is
- /dev/random
+ <code>backend</code> element. <span class='since'>Since 1.3.4</span>
+ any path is accepted. Before that /dev/random and /dev/hwrng were
+ the only accepted paths. When no file name is specified the hypervisor
+ default is used. For qemu, the default is /dev/random
</p>
</dd>
<dt><code>egd</code></dt>
--
2.7.3
8 years, 6 months
[libvirt] [PATCH v2 0/6] Introducing storage pool lifecycle event APIs
by Jovanka Gulicoska
Changes follow comments on v1 patches.
Introducing implementation of storage pool event APIs. Code changes
follow network event APIs.
Implemented functions: virStoragePoolEventRegisterAny(),
virStoragePoolEventDeregisterAny(), virStoragePoolLifeCycleEventNew(),
introduced STARTED, STOPPED, DEFINE, UNDEFINE and REFRESHED.
STARTED signal is emiited in storagePoolCreateXML() and storagePoolCreate()
DEFINED signal is emitted in storagePoolDefineXML()
UNDEFINED signal is emitted in storagePoolUndefine()
STOPPED signal is emitted in storagePoolDestroy() and storagePoolRefresh()
REFRESHED signal is emitted in storagePoolRefresh()
There are also test as well as unittests for the new functions and signals.
This is part of a GSOC project: Asynchronous lifecycle events for storage objects
As part of the project there should also be implementation for
storage volume events.
For now there's no signal when volumes are created or deleted,
they can also be implemented, but probably the easiest way is to have
apps watch for REFRESH signal, and later extend storage driver code to
refresh a pool after volume APIs are called.
Jovanka Gulicoska (6):
Introduce storage lifecycle event APIs
conf: add storage_event handling
test: implement storage lifecycle event APIs
remote: implement storage lifecycle event APIs
storage: implement storage lifecycle event APIs
event-test: support storage lifecycle event APIs
daemon/libvirtd.h | 2 +
daemon/remote.c | 201 +++++++++++++++++++++++++++++-
examples/object-events/event-test.c | 46 ++++++-
include/libvirt/libvirt-storage.h | 94 ++++++++++++++
src/Makefile.am | 5 +
src/conf/storage_conf.h | 4 +
src/conf/storage_event.c | 237 ++++++++++++++++++++++++++++++++++++
src/conf/storage_event.h | 60 +++++++++
src/datatypes.h | 13 ++
src/driver-storage.h | 14 +++
src/libvirt-storage.c | 125 +++++++++++++++++++
src/libvirt_private.syms | 5 +
src/libvirt_public.syms | 7 ++
src/remote/remote_driver.c | 128 +++++++++++++++++++
src/remote/remote_protocol.x | 43 ++++++-
src/remote_protocol-structs | 16 +++
src/storage/storage_driver.c | 110 +++++++++++++++++
src/test/test_driver.c | 71 +++++++++++
tests/objecteventtest.c | 177 +++++++++++++++++++++++++++
19 files changed, 1355 insertions(+), 3 deletions(-)
create mode 100644 src/conf/storage_event.c
create mode 100644 src/conf/storage_event.h
--
2.5.5
8 years, 6 months
[libvirt] Enabling libvirt admin API
by Erik Skultety
It's been a while since an RFE for getting and setting specific daemon
configuration parameters[1] during runtime landed in bugzilla. Although
there was only need for dynamic reconfiguration of number of connected
clients allowed in the original request, the plan Dan proposed was to
implement a separate libvirt administration library, specifying some
ideas regarding the functionality that the first version should support.
These of course needed a fair amount of helper functions (before any API
could be introduced), so a decision to explicitly disable creation of
the admin socket (also neither distributing the .so nor the header)
until the interface is capable to do something more than just
connecting/disconnecting, listing servers and polling for library
version has been made.
Besides the dynamic reconfiguration of the logging parameters which has
been waiting in the list (presumably needs a fresh rebase onto the
current master) due to being related and dependent on the logging level
refactor[2] (I CCed Daniel as he might have an update on this), the
remaining requirements on the interface have been met already. So I was
wondering if we could manage to enable it in the upcoming release, as
well as getting it to 7.3 (thus not delaying the RFC anymore). I'd like
to hear your opinions on this matter, possibly because I might have
missed something that would cause the "official" release of the feature
to be prolonged even more.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=735385
[2] https://www.redhat.com/archives/libvir-list/2016-May/msg00760.html
Regards,
Erik
8 years, 6 months
[libvirt] Libvirt multi queue support
by Naor Shlomo
Hello experts,
Could anyone please tell me if Multi Queue it fully supported in Libvirt and if so what version contains it?
Thanks,
Naor
8 years, 6 months