[libvirt] ARMv7 guest PCI support broken in 3.0.0 onwards
by Daniel P. Berrange
$ cat arm.xml
<domain type="qemu">
<name>f22-arm32</name>
<uuid>a6bc14fb-585b-40b0-a15b-5e19f26079ba</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch="armv7l" machine="virt">hvm</type>
<boot dev="hd"/>
</os>
<clock offset="utc"/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-arm</emulator>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/home/berrange/VirtualMachines/demo.qcow2"/>
<target dev="sda" bus="scsi"/>
</disk>
<controller type="scsi" index="0" model="virtio-scsi"/>
<interface type="user">
<mac address="52:54:00:87:d4:c0"/>
<model type="virtio"/>
</interface>
<console type="pty"/>
</devices>
</domain>
$ virsh define arm.xml
Domain f22-arm32 defined from arm.xml
$ virsh start f22-arm32
error: Failed to start domain f22-arm32
error: internal error: qemu unexpectedly closed the monitor: 2017-02-15T09:24:03.967648Z qemu-system-arm: -device ioh3420,port=0x8,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x1: MSI is not supported by interrupt controller
2017-02-15T09:24:03.968154Z qemu-system-arm: -device ioh3420,port=0x8,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x1: Device initialization failed
I've not bisected it other than to find it works in 2.5.0 and is
broken in 3.0.0
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|
7 years, 9 months
[libvirt] [RFC PATCH v2 REBASE 00/18] Introduce vGPU mdev framework to libvirt
by Erik Skultety
since the original v2 [1]:
- resolved a few merge conflicts caused by @9d92f533 which refactored out some
duplicate code which eventually lead to dropping patch 14/18 from the original
series due to being unnecessary
- rebased onto fresh HEAD
[1] https://www.redhat.com/archives/libvir-list/2017-February/msg00739.html
Erik Skultety (18):
util: Introduce new module virmdev
conf: Introduce new hostdev device type mdev
conf: Introduce new address type mdev
conf: Update XML parser, formatter, and RNG schema to support mdev
conf: Introduce virDomainHostdevDefPostParse
conf: Add post parse code for mdevs to virDomainHostdevDefPostParse
security: dac: Enable labeling of vfio mediated devices
security: selinux: Enable labeling of vfio mediated devices
conf: Enable cold-plug of a mediated device
qemu: Assign PCI addresses for mediated devices as well
hostdev: Maintain a driver list of active mediated devices
hostdev: Introduce a reattach method for mediated devices
qemu: cgroup: Adjust cgroups' logic to allow mediated devices
qemu: Bump the memory locking limit for mdevs as well
qemu: Format mdevs on qemu command line
test: Add some test cases for our test suite regarding the mdevs
docs: Document the new hostdev and address type 'mdev'
news: Update the NEWS.xml about the new mdev feature
docs/formatdomain.html.in | 48 ++-
docs/news.xml | 9 +
docs/schemas/domaincommon.rng | 26 ++
po/POTFILES.in | 1 +
src/Makefile.am | 1 +
src/conf/device_conf.h | 1 +
src/conf/domain_conf.c | 203 ++++++++++--
src/conf/domain_conf.h | 9 +
src/libvirt_private.syms | 20 ++
src/qemu/qemu_command.c | 49 +++
src/qemu/qemu_command.h | 5 +
src/qemu/qemu_domain.c | 23 +-
src/qemu/qemu_domain.h | 1 +
src/qemu/qemu_domain_address.c | 16 +-
src/qemu/qemu_hostdev.c | 37 +++
src/qemu/qemu_hostdev.h | 8 +
src/qemu/qemu_hotplug.c | 2 +
src/security/security_apparmor.c | 3 +
src/security/security_dac.c | 55 ++++
src/security/security_selinux.c | 54 ++++
src/util/virhostdev.c | 229 ++++++++++++-
src/util/virhostdev.h | 16 +
src/util/virmdev.c | 358 +++++++++++++++++++++
src/util/virmdev.h | 93 ++++++
tests/domaincapsschemadata/full.xml | 1 +
.../qemuxml2argv-hostdev-mdev-unmanaged.args | 25 ++
.../qemuxml2argv-hostdev-mdev-unmanaged.xml | 37 +++
tests/qemuxml2argvtest.c | 6 +
.../qemuxml2xmlout-hostdev-mdev-unmanaged.xml | 40 +++
tests/qemuxml2xmltest.c | 1 +
30 files changed, 1333 insertions(+), 44 deletions(-)
create mode 100644 src/util/virmdev.c
create mode 100644 src/util/virmdev.h
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-mdev-unmanaged.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-hostdev-mdev-unmanaged.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-hostdev-mdev-unmanaged.xml
--
2.10.2
7 years, 9 months
[libvirt] [PATCH 00/11] storage: modularize the storage driver backends
by Peter Krempa
Split up the storage driver backends into loadable modules so that
binary distributions don't have to compromise on shipping the storage
driver with all backends which may pull in too many dependencies.
Peter Krempa (11):
configure: Fix configure output for RBD storage backend
tests: storagepoolxml2xml: Remove compile conditionals
tests: drivermodule: Drop unused macro arguments
driver: Split/refactor driver module loading
daemon: Refactor connection driver module loading
storage: backend: Refactor registration of the backend drivers
storage: Turn driver backends into (static) modules
storage: Turn storage backends into dynamic modules
tests: drivermodule: Make sure that all compiled storage backends can
be loaded
spec: Modularize the storage driver
news: Mention storage driver split
daemon/libvirtd.c | 136 +++++++++-------------
docs/news.xml | 10 ++
libvirt.spec.in | 185 +++++++++++++++++++++++++-----
m4/virt-storage-rbd.m4 | 2 +-
src/Makefile.am | 199 ++++++++++++++++++++++++++++++---
src/driver.c | 136 ++++++++++++++--------
src/driver.h | 6 +-
src/libvirt_driver_modules.syms | 1 +
src/storage/storage_backend.c | 151 +++++++++++++++++++------
src/storage/storage_backend.h | 5 +
src/storage/storage_backend_disk.c | 7 ++
src/storage/storage_backend_disk.h | 4 +-
src/storage/storage_backend_fs.c | 27 +++++
src/storage/storage_backend_fs.h | 11 +-
src/storage/storage_backend_gluster.c | 13 ++-
src/storage/storage_backend_gluster.h | 5 +-
src/storage/storage_backend_iscsi.c | 7 ++
src/storage/storage_backend_iscsi.h | 4 +-
src/storage/storage_backend_logical.c | 7 ++
src/storage/storage_backend_logical.h | 4 +-
src/storage/storage_backend_mpath.c | 8 ++
src/storage/storage_backend_mpath.h | 4 +-
src/storage/storage_backend_rbd.c | 7 ++
src/storage/storage_backend_rbd.h | 4 +-
src/storage/storage_backend_scsi.c | 7 ++
src/storage/storage_backend_scsi.h | 4 +-
src/storage/storage_backend_sheepdog.c | 7 ++
src/storage/storage_backend_sheepdog.h | 4 +-
src/storage/storage_backend_vstorage.c | 7 ++
src/storage/storage_backend_vstorage.h | 4 +-
src/storage/storage_backend_zfs.c | 7 ++
src/storage/storage_backend_zfs.h | 4 +-
src/storage/storage_driver.c | 19 +++-
src/storage/storage_driver.h | 1 +
tests/Makefile.am | 4 +-
tests/storagepoolxml2xmltest.c | 6 -
tests/virdrivermoduletest.c | 52 +++++----
tests/virstoragetest.c | 4 +
38 files changed, 788 insertions(+), 285 deletions(-)
--
2.11.0
7 years, 9 months
[libvirt] libvirt-python bug: custom event loop impl calls ff callback from *Remove(Handle|Timeout)Func
by Wojtek Porczyk
Hello libvirt-list,
As of current libvirt-python.git, according to libvirt-override.c, if
implementing custom event loop in Python, ff callback is called from
libvirt_virEventRemoveHandleFunc, which is a C glue between
virEventRegisterImpl and actual removeHandle function written in Python:
> result = PyEval_CallObject(removeHandleObj, pyobj_args);
> if (!result) {
> PyErr_Print();
> PyErr_Clear();
> } else if (!PyTuple_Check(result) || PyTuple_Size(result) != 3) {
> DEBUG("%s: %s must return opaque obj registered with %s"
> "to avoid leaking libvirt memory\n",
> __FUNCTION__, NAME(removeHandle), NAME(addHandle));
> } else {
> opaque = PyTuple_GetItem(result, 1);
> ff = PyTuple_GetItem(result, 2);
> cff = PyvirFreeCallback_Get(ff);
> if (cff)
> (*cff)(PyvirVoidPtr_Get(opaque));
> retval = 0;
> }
This is exactly what one shoud not be doing according to documentation [1]:
> If the opaque user data requires free'ing when the handle is unregistered,
> then a 2nd callback can be supplied for this purpose. This callback needs to
> be invoked from a clean stack. If 'ff' callbacks are invoked directly from the
> virEventRemoveHandleFunc they will likely deadlock in libvirt.
[1] https://libvirt.org/html/libvirt-libvirt-event.html#virEventAddHandleFunc
This is true, the deadlock occurs. When the "result" tuple is mangled to have
None as third item ("ff"), then cff = PyvirFreeCallback_Get(ff) is NULL and
the deadlock does not happen.
That's also why script examples/event-test.py does not deadlock, because it
does not return anything (that is, returns None) from Python, so the second if
block happens and the ff callback, if any, is not executed (and probably
something leaks, but I didn't check for that).
Everything also applies to to timeouts (libvirt_virEventRemoteTimeoutFunc).
--
pozdrawiam / best regards _.-._
Wojtek Porczyk .-^' '^-.
Invisible Things Lab |'-.-^-.-'|
| | | |
I do not fear computers, | '-.-' |
I fear lack of them. '-._ : ,-'
-- Isaac Asimov `^-^-_>
7 years, 9 months
[libvirt] 1GB huge pages and incompatible VM memory size
by Jim Fehlig
Hi All,
Matt encountered the following issue when using 1GB huge pages with libvirt
> This problem turned out to be entirely my fault because I didn't round
> the VM's memory size to a 1G multiple, and the kernel tried to split
> the VMA at the end of the region, triggering this code in the kernel
> do_mbind() path,
>
> static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
> unsigned long addr, int new_below)
> {
> struct vm_area_struct *new;
> int err;
>
> if (is_vm_hugetlb_page(vma) && (addr &
> ~(huge_page_mask(hstate_vma(vma)))))
> return -EINVAL;
>
> I have no idea how a less fortunate developer without access to MM
> experts would have figured this out. It's a shame virsh didn't error
> out when I initially setup 1G hugepages with an incompatible VM memory
> size.
What do folks think about improving libvirt to warn or error when using a VM
memory size that is not compatible with the host hugepage configuration?
Regards,
Jim
7 years, 9 months
[libvirt] [PATCH 0/6] bhyve UEFI and graphics support
by Roman Bogorodskiy
Fabian Freyer (5):
bhyve: virBhyveProbeCaps: BHYVE_CAP_LPC_BOOTROM
bhyve: add support for booting from UEFI
bhyve: test cases for UEFI bhyvexml2argvtest
bhyve: enumerate UEFI firmwares
bhyve: add video support
Roman Bogorodskiy (1):
bhyve: test cases for VNC
docs/formatdomain.html.in | 3 +-
docs/schemas/domaincommon.rng | 1 +
po/POTFILES.in | 1 +
src/bhyve/bhyve_capabilities.c | 93 ++++++++++++++++
src/bhyve/bhyve_capabilities.h | 2 +
src/bhyve/bhyve_command.c | 130 +++++++++++++++++++++-
src/bhyve/bhyve_device.c | 11 ++
src/bhyve/bhyve_driver.c | 27 ++++-
src/bhyve/bhyve_process.c | 55 ++++-----
src/conf/domain_conf.c | 5 +-
src/conf/domain_conf.h | 1 +
src/qemu/qemu_command.c | 9 +-
src/qemu/qemu_domain_address.c | 1 +
tests/bhyvexml2argvdata/bhyvexml2argv-uefi.args | 11 ++
tests/bhyvexml2argvdata/bhyvexml2argv-uefi.ldargs | 1 +
tests/bhyvexml2argvdata/bhyvexml2argv-uefi.xml | 23 ++++
tests/bhyvexml2argvdata/bhyvexml2argv-vnc.args | 12 ++
tests/bhyvexml2argvdata/bhyvexml2argv-vnc.ldargs | 1 +
tests/bhyvexml2argvdata/bhyvexml2argv-vnc.xml | 26 +++++
tests/bhyvexml2argvtest.c | 18 ++-
tests/domaincapsschemadata/full.xml | 1 +
21 files changed, 394 insertions(+), 38 deletions(-)
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi.args
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi.ldargs
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-uefi.xml
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-vnc.args
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-vnc.ldargs
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-vnc.xml
--
2.11.0
7 years, 9 months
[libvirt] [PATCH] virt-host-validate: add bhyve support
by Roman Bogorodskiy
Add bhyve support to virt-host-validate(1). It checks for the
essential kernel modules to be available so that user can actually
start VMs, have networking and console access.
It uses the kldnext(2)/kldstat(2) routines to retrieve modules list.
As bhyve is only available on FreeBSD and these routines were available
long before bhyve appeared, not adding any specific configure checks
for that.
---
po/POTFILES.in | 1 +
tools/Makefile.am | 1 +
tools/virt-host-validate-bhyve.c | 78 ++++++++++++++++++++++++++++++++++++++++
tools/virt-host-validate-bhyve.h | 27 ++++++++++++++
tools/virt-host-validate.c | 12 +++++++
tools/virt-host-validate.pod | 4 +--
6 files changed, 121 insertions(+), 2 deletions(-)
create mode 100644 tools/virt-host-validate-bhyve.c
create mode 100644 tools/virt-host-validate-bhyve.h
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 9f66697d7..51b5859cb 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -306,6 +306,7 @@ tools/virsh-snapshot.c
tools/virsh-volume.c
tools/virsh.c
tools/virt-admin.c
+tools/virt-host-validate-bhyve.c
tools/virt-host-validate-common.c
tools/virt-host-validate-lxc.c
tools/virt-host-validate-qemu.c
diff --git a/tools/Makefile.am b/tools/Makefile.am
index e6ae15025..a8bd3d1c2 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -142,6 +142,7 @@ virt_host_validate_SOURCES = \
virt-host-validate-common.c virt-host-validate-common.h \
virt-host-validate-qemu.c virt-host-validate-qemu.h \
virt-host-validate-lxc.c virt-host-validate-lxc.h \
+ virt-host-validate-bhyve.c virt-host-validate-bhyve.h \
$(NULL)
virt_host_validate_LDFLAGS = \
diff --git a/tools/virt-host-validate-bhyve.c b/tools/virt-host-validate-bhyve.c
new file mode 100644
index 000000000..c7bf96f05
--- /dev/null
+++ b/tools/virt-host-validate-bhyve.c
@@ -0,0 +1,78 @@
+/*
+ * virt-host-validate-bhyve.c: Sanity check a bhyve hypervisor host
+ *
+ * Copyright (C) 2017 Roman Bogorodskiy
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <config.h>
+
+#include <sys/param.h>
+#include <sys/linker.h>
+#include <stdio.h>
+
+#include "virt-host-validate-bhyve.h"
+#include "virt-host-validate-common.h"
+
+#define MODULE_STATUS(mod, err_msg, err_code) \
+ virHostMsgCheck("BHYVE", _("for %s module"), #mod); \
+ if (mod ## _loaded) { \
+ virHostMsgPass(); \
+ } else { \
+ virHostMsgFail(err_code, \
+ _("%s module is not loaded, " err_msg), \
+ #mod); \
+ ret = -1; \
+ } \
+
+#define MODULE_STATUS_FAIL(mod, err_msg) \
+ MODULE_STATUS(mod, err_msg, VIR_HOST_VALIDATE_FAIL)
+
+#define MODULE_STATUS_WARN(mod, err_msg) \
+ MODULE_STATUS(mod, err_msg, VIR_HOST_VALIDATE_WARN)
+
+
+int virHostValidateBhyve(void)
+{
+ int ret = 0;
+ int fileid = 0;
+ struct kld_file_stat stat;
+ bool vmm_loaded = false, if_tap_loaded = false;
+ bool if_bridge_loaded = false, nmdm_loaded = false;
+
+ for (fileid = kldnext(0); fileid > 0; fileid = kldnext(fileid)) {
+ stat.version = sizeof(struct kld_file_stat);
+ if (kldstat(fileid, &stat) < 0)
+ continue;
+
+ if (STREQ(stat.name, "vmm.ko"))
+ vmm_loaded = true;
+ else if (STREQ(stat.name, "if_tap.ko"))
+ if_tap_loaded = true;
+ else if (STREQ(stat.name, "if_bridge.ko"))
+ if_bridge_loaded = true;
+ else if (STREQ(stat.name, "nmdm.ko"))
+ nmdm_loaded = true;
+ }
+
+ MODULE_STATUS_FAIL(vmm, "will not be able to start VMs");
+ MODULE_STATUS_WARN(if_tap, "networking will not work");
+ MODULE_STATUS_WARN(if_bridge, "bridged networking will not work");
+ MODULE_STATUS_WARN(nmdm, "nmdm console will not work");
+
+ return ret;
+}
diff --git a/tools/virt-host-validate-bhyve.h b/tools/virt-host-validate-bhyve.h
new file mode 100644
index 000000000..290d4336f
--- /dev/null
+++ b/tools/virt-host-validate-bhyve.h
@@ -0,0 +1,27 @@
+/*
+ * virt-host-validate-bhyve.h: Sanity check a bhyve hypervisor host
+ *
+ * Copyright (C) 2017 Roman Bogorodskiy
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef __VIRT_HOST_VALIDATE_BHYVE_H__
+# define __VIRT_HOST_VALIDATE_BHYVE_H__
+
+int virHostValidateBhyve(void);
+
+#endif /* __VIRT_HOST_VALIDATE_BHYVE_H__ */
diff --git a/tools/virt-host-validate.c b/tools/virt-host-validate.c
index f09282412..29d2482b6 100644
--- a/tools/virt-host-validate.c
+++ b/tools/virt-host-validate.c
@@ -36,6 +36,9 @@
#if WITH_LXC
# include "virt-host-validate-lxc.h"
#endif
+#if WITH_BHYVE
+# include "virt-host-validate-bhyve.h"
+#endif
static void
show_help(FILE *out, const char *argv0)
@@ -48,6 +51,7 @@ show_help(FILE *out, const char *argv0)
"\n"
" - qemu\n"
" - lxc\n"
+ " - bhyve\n"
"\n"
" Options:\n"
" -h, --help Display command line help\n"
@@ -130,6 +134,14 @@ main(int argc, char **argv)
}
#endif
+#if WITH_BHYVE
+ if (!hvname || STREQ(hvname, "bhyve")) {
+ usedHvname = true;
+ if (virHostValidateBhyve() < 0)
+ ret = EXIT_FAILURE;
+ }
+#endif
+
if (hvname && !usedHvname) {
fprintf(stderr, _("%s: unsupported hypervisor name %s\n"),
argv[0], hvname);
diff --git a/tools/virt-host-validate.pod b/tools/virt-host-validate.pod
index 84917c83b..910114175 100644
--- a/tools/virt-host-validate.pod
+++ b/tools/virt-host-validate.pod
@@ -12,8 +12,8 @@ This tool validates that the host is configured in a suitable
way to run libvirt hypervisor drivers. If invoked without any
arguments it will check support for all hypervisor drivers it
is aware of. Optionally it can be given a particular hypervisor
-type ('qemu' or 'lxc') to restrict the checks to those relevant
-for that virtualization technology
+type ('qemu', 'lxc' or 'bhyve') to restrict the checks
+to those relevant for that virtualization technology
=head1 OPTIONS
--
2.11.0
7 years, 9 months
[libvirt] [PATCH v2 00/14] Introduce NVDIMM support
by Michal Privoznik
v2 of:
https://www.redhat.com/archives/libvir-list/2017-February/msg01229.html
How to test this feature?
$ > /tmp/nvdimm
$ truncate --size 512M /tmp/nvdimm
$ virsh edit $mydom
<memory model='nvdimm' access='shared'>
<source>
<path>/tmp/nvdimm</path>
</source>
<target>
<size unit='MiB'>512</size>
<node>0</node>
<label>
<size unit='KiB'>128</size>
</label>
</target>
<address type='dimm' slot='0'/>
</memory>
$ virsh start $mydom
$ ssh $mydom "echo \"Hello world\" > /dev/pmem0"
$ hexdump -C /tmp/nvdimm
00000000 48 65 6c 6c 6f 20 77 6f 72 6c 64 0a 00 00 00 00 |Hello world.....|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
20000000
Michal Privoznik (14):
qemuBuildMemoryBackendStr: Reorder args and update comment
Introduce NVDIMM memory model
qemu: Introduce QEMU_CAPS_DEVICE_NVDIMM
qemu: Implement NVDIMM
conf: Introduce @access to <memory/>
qemu: Implement @access for <memory/> banks
qemu: Introduce label-size for NVDIMMs
security_dac: Label host side of NVDIMM
security_selinux: Label host side of NVDIMM
security: Introduce internal APIs for memdev labelling
secdrivers: Implement memdev relabel APIs
qemu_hotplug: Relabel memdev
qemu: Allow nvdimm in devices CGroups
qemu: Namespaces for NVDIMM
docs/formatdomain.html.in | 79 ++++++++---
docs/schemas/domaincommon.rng | 47 +++++--
src/conf/domain_conf.c | 131 +++++++++++++----
src/conf/domain_conf.h | 5 +
src/libvirt_private.syms | 2 +
src/qemu/qemu_alias.c | 10 +-
src/qemu/qemu_capabilities.c | 9 ++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_cgroup.c | 49 +++++++
src/qemu/qemu_cgroup.h | 4 +
src/qemu/qemu_command.c | 155 +++++++++++++++------
src/qemu/qemu_command.h | 16 ++-
src/qemu/qemu_domain.c | 105 +++++++++++++-
src/qemu/qemu_domain.h | 8 ++
src/qemu/qemu_hotplug.c | 42 +++++-
src/qemu/qemu_security.c | 56 ++++++++
src/qemu/qemu_security.h | 8 ++
src/security/security_dac.c | 76 ++++++++++
src/security/security_driver.h | 9 ++
src/security/security_manager.c | 56 ++++++++
src/security/security_manager.h | 7 +
src/security/security_nop.c | 19 +++
src/security/security_selinux.c | 69 +++++++++
src/security/security_stack.c | 38 +++++
.../qemuxml2argv-memory-hotplug-nvdimm-access.args | 26 ++++
.../qemuxml2argv-memory-hotplug-nvdimm-access.xml | 56 ++++++++
.../qemuxml2argv-memory-hotplug-nvdimm-label.args | 26 ++++
.../qemuxml2argv-memory-hotplug-nvdimm-label.xml | 59 ++++++++
.../qemuxml2argv-memory-hotplug-nvdimm.args | 26 ++++
.../qemuxml2argv-memory-hotplug-nvdimm.xml | 56 ++++++++
tests/qemuxml2argvtest.c | 8 +-
...qemuxml2xmlout-memory-hotplug-nvdimm-access.xml | 1 +
.../qemuxml2xmlout-memory-hotplug-nvdimm-label.xml | 1 +
.../qemuxml2xmlout-memory-hotplug-nvdimm.xml | 1 +
tests/qemuxml2xmltest.c | 3 +
35 files changed, 1144 insertions(+), 120 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-access.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-access.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-label.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm-label.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-memory-hotplug-nvdimm.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-memory-hotplug-nvdimm-access.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-memory-hotplug-nvdimm-label.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-memory-hotplug-nvdimm.xml
--
2.11.0
7 years, 9 months
[libvirt] [PATCH] doc updates
by Philipp Hahn
Hi,
here are 3 patches to improve the documentation:
the 1st one is a re-sent from 2013,
the 2nd one is my version of a patch proposed 2011,
the 3rd is probably most controversal, so drop it if you don't like it. The
QEMU homepage spellts it "QEMU" and "qemu" is used a lot for the binary, but
"Qemu" is used very little.
Philipp Hahn (3):
doc: add storage format entries
doc: Correct the default werror policy
doc: fix writing of QEMU
ChangeLog-old | 4 ++--
docs/formatdomain.html.in | 6 +++---
docs/formatnwfilter.html.in | 6 +++---
docs/news-2009.html.in | 6 +++---
docs/news-2010.html.in | 12 ++++++------
docs/news-2011.html.in | 4 ++--
docs/news-2012.html.in | 2 +-
docs/news-2014.html.in | 2 +-
docs/storage.html.in | 17 ++++++++++-------
libvirt.spec.in | 2 +-
po/af.po | 2 +-
po/am.po | 2 +-
po/anp.po | 2 +-
po/ar.po | 2 +-
po/as.po | 2 +-
po/ast.po | 2 +-
po/bal.po | 2 +-
po/be.po | 2 +-
po/bg.po | 2 +-
po/bn.po | 2 +-
po/bn_IN.po | 2 +-
po/bo.po | 2 +-
po/br.po | 2 +-
po/brx.po | 2 +-
po/bs.po | 2 +-
po/ca.po | 2 +-
po/cs.po | 2 +-
po/cy.po | 2 +-
po/da.po | 2 +-
po/de.po | 2 +-
po/de_CH.po | 2 +-
po/el.po | 2 +-
po/en_GB.po | 4 ++--
po/eo.po | 2 +-
po/es.po | 2 +-
po/et.po | 2 +-
po/eu.po | 2 +-
po/fa.po | 2 +-
po/fi.po | 2 +-
po/fr.po | 2 +-
po/gl.po | 2 +-
po/gu.po | 2 +-
po/he.po | 2 +-
po/hi.po | 2 +-
po/hr.po | 2 +-
po/hu.po | 2 +-
po/ia.po | 2 +-
po/id.po | 2 +-
po/ilo.po | 2 +-
po/is.po | 2 +-
po/it.po | 2 +-
po/ja.po | 2 +-
po/ka.po | 2 +-
po/kk.po | 2 +-
po/km.po | 2 +-
po/kn.po | 2 +-
po/ko.po | 2 +-
po/kw.po | 2 +-
po/kw(a)kkcor.po | 2 +-
po/kw(a)uccor.po | 2 +-
po/kw_GB.po | 2 +-
po/ky.po | 2 +-
po/libvirt.pot | 2 +-
po/lt.po | 2 +-
po/lv.po | 2 +-
po/mai.po | 2 +-
po/mk.po | 2 +-
po/ml.po | 2 +-
po/mn.po | 2 +-
po/mr.po | 2 +-
po/ms.po | 2 +-
po/nb.po | 2 +-
po/nds.po | 2 +-
po/ne.po | 2 +-
po/nl.po | 2 +-
po/nn.po | 2 +-
po/nso.po | 2 +-
po/or.po | 2 +-
po/pa.po | 2 +-
po/pl.po | 2 +-
po/pt.po | 2 +-
po/pt_BR.po | 2 +-
po/ro.po | 2 +-
po/ru.po | 2 +-
po/si.po | 2 +-
po/sk.po | 2 +-
po/sl.po | 2 +-
po/sq.po | 2 +-
po/sr.po | 2 +-
po/sr(a)latin.po | 2 +-
po/sv.po | 2 +-
po/ta.po | 2 +-
po/te.po | 2 +-
po/tg.po | 2 +-
po/th.po | 2 +-
po/tr.po | 2 +-
po/tw.po | 2 +-
po/uk.po | 2 +-
po/ur.po | 2 +-
po/vi.po | 2 +-
po/wba.po | 2 +-
po/yo.po | 2 +-
po/zh_CN.po | 2 +-
po/zh_HK.po | 2 +-
po/zh_TW.po | 2 +-
po/zu.po | 2 +-
src/cpu/cpu_s390.c | 2 +-
src/qemu/MIGRATION.txt | 2 +-
src/qemu/THREADS.txt | 2 +-
src/qemu/qemu.conf | 4 ++--
src/qemu/qemu_command.c | 2 +-
src/qemu/qemu_domain.h | 2 +-
src/qemu/qemu_monitor.c | 6 +++---
src/qemu/qemu_parse_command.c | 2 +-
114 files changed, 140 insertions(+), 137 deletions(-)
--
2.1.4
7 years, 9 months