[libvirt] [PATCH] Document behavior of compat when creating qcow2 volumes
by Ján Tomko
Commit bab2eda changed the behavior for missing compat attribute,
but failed to update the documentation.
Before, the option was omitted from qemu-img command line and the
qemu-img default was used. Now we always specify the compat value
and the default is 0.10.
Reported by Christophe Fergeau
https://bugzilla.gnome.org/show_bug.cgi?id=746660#c4
---
docs/formatstorage.html.in | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in
index d2e2bb8..9c7b1bd 100644
--- a/docs/formatstorage.html.in
+++ b/docs/formatstorage.html.in
@@ -588,8 +588,9 @@
<code>type='qcow2'</code> volumes. Valid values are <code>0.10</code>
and <code>1.1</code> so far, specifying QEMU version the images should
be compatible with. If the <code>feature</code> element is present,
- 1.1 is used. If omitted, qemu-img default is used.
- <span class="since">Since 1.1.0</span>
+ 1.1 is used.
+ <span class="since">Since 1.1.0</span> If omitted, 0.10 is used.
+ <span class="since">Since 1.1.2</span>
</dd>
<dt><code>nocow</code></dt>
<dd>Turn off COW of the newly created volume. So far, this is only valid
--
2.0.5
9 years, 8 months
[libvirt] [PATCH 0/2] Support core file limit settings for QEMU
by Daniel P. Berrange
Currently QEMU inherits core size limits from libvirtd which
is rather inconvenient
Daniel P. Berrange (2):
conf: parse integers into long long, instead of long
qemu: add a max_core setting to qemu.conf for core dump size
daemon/libvirtd-config.c | 6 +--
src/libvirt_private.syms | 2 +
src/locking/lock_daemon_config.c | 4 +-
src/locking/lock_driver_lockd.c | 4 +-
src/locking/lock_driver_sanlock.c | 6 +--
src/lxc/lxc_conf.c | 6 +--
src/qemu/libvirtd_qemu.aug | 1 +
src/qemu/qemu.conf | 12 +++++
src/qemu/qemu_conf.c | 9 ++--
src/qemu/qemu_conf.h | 2 +
src/qemu/qemu_process.c | 2 +
src/qemu/test_libvirtd_qemu.aug.in | 1 +
src/util/vircommand.c | 14 +++++
src/util/vircommand.h | 1 +
src/util/virconf.c | 22 ++++----
src/util/virconf.h | 6 +--
src/util/virprocess.c | 35 +++++++++++++
src/util/virprocess.h | 1 +
src/xenconfig/xen_common.c | 8 +--
tests/Makefile.am | 5 ++
tests/libvirtdconftest.c | 4 +-
tests/virconftest.c | 105 +++++++++++++++++++++++++++++++++++++
22 files changed, 220 insertions(+), 36 deletions(-)
create mode 100644 tests/virconftest.c
--
2.1.0
9 years, 8 months
[libvirt] [PATCH] qemu: change accidental VIR_WARNING back to VIR_DEBUG
by Laine Stump
While debugging the support for responding to qemu RX_FILTER_CHANGED
events, I had changed the "ignoring this event" log message from
VIR_DEBUG to VIR_WARN, but forgot to change it back before
pushing. Since many guest OSes make enough changes to multicast lists
and/or promiscuous mode settings to trigger this message, it's
starting to show up as a red herring in bug reports.
---
src/qemu/qemu_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 6d9217b..2bac4a9 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -4340,7 +4340,7 @@ processNicRxFilterChangedEvent(virQEMUDriverPtr driver,
def = dev.data.net;
if (!virDomainNetGetActualTrustGuestRxFilters(def)) {
- VIR_WARN("ignore NIC_RX_FILTER_CHANGED event for network "
+ VIR_DEBUG("ignore NIC_RX_FILTER_CHANGED event for network "
"device %s in domain %s",
def->info.alias, vm->def->name);
/* not sending "query-rx-filter" will also suppress any
--
2.1.0
9 years, 8 months
[libvirt] [PATCH] qemucaps2xmltest: fix the test to correspond to new domain formatting
by Pavel Hrdina
Commit 2360fe5d updated formating of <domain> element but forget to
update qemucaps2xmldata xml files. In addition the test code was broken
too. Update the xml files and return -1 if testCompareXMLToXML fails
together with indentation fix.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
tests/qemucaps2xmldata/all_1.6.0-1.xml | 3 +--
tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.xml | 3 +--
tests/qemucaps2xmltest.c | 4 ++--
3 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/tests/qemucaps2xmldata/all_1.6.0-1.xml b/tests/qemucaps2xmldata/all_1.6.0-1.xml
index 425b22e..2489f49 100644
--- a/tests/qemucaps2xmldata/all_1.6.0-1.xml
+++ b/tests/qemucaps2xmldata/all_1.6.0-1.xml
@@ -12,8 +12,7 @@
<arch name='i686'>
<wordsize>32</wordsize>
<emulator>/usr/bin/qemu-system-i386</emulator>
- <domain type='qemu'>
- </domain>
+ <domain type='qemu'/>
<domain type='kvm'>
<emulator>/usr/bin/qemu-system-i386</emulator>
</domain>
diff --git a/tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.xml b/tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.xml
index cd19814..281fab0 100644
--- a/tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.xml
+++ b/tests/qemucaps2xmldata/nodisksnapshot_1.6.0-1.xml
@@ -12,8 +12,7 @@
<arch name='i686'>
<wordsize>32</wordsize>
<emulator>/usr/bin/qemu-system-i386</emulator>
- <domain type='qemu'>
- </domain>
+ <domain type='qemu'/>
<domain type='kvm'>
<emulator>/usr/bin/qemu-system-i386</emulator>
</domain>
diff --git a/tests/qemucaps2xmltest.c b/tests/qemucaps2xmltest.c
index 3529acb..b3975b4 100644
--- a/tests/qemucaps2xmltest.c
+++ b/tests/qemucaps2xmltest.c
@@ -31,7 +31,7 @@
static int
testCompareXMLToXML(const char *inxmldata, const char *outxmldata)
{
- int ret = 1;
+ int ret = -1;
if (STRNEQ(outxmldata, inxmldata)) {
virtTestDifference(stderr, outxmldata, inxmldata);
@@ -143,7 +143,7 @@ testQemuCapsXML(const void *opaque)
char *capsXml = NULL;
virCapsPtr capsProvided = NULL;
- if (virAsprintf(&xmlFile, "%s/qemucaps2xmldata/%s.xml",
+ if (virAsprintf(&xmlFile, "%s/qemucaps2xmldata/%s.xml",
abs_srcdir, data->base) < 0)
goto cleanup;
--
2.0.5
9 years, 8 months
[libvirt] [PATCHv2 0/5] Allocate virtio-serial addresses
by Ján Tomko
https://bugzilla.redhat.com/show_bug.cgi?id=890606
https://bugzilla.redhat.com/show_bug.cgi?id=1076708
Ján Tomko (5):
Add test for virtio serial port assignment
Add functions to track virtio-serial addresses
Allocate virtio-serial addresses when starting a domain
Expand the address set when attaching a virtio-serial controller
Assign an address when hotplugging a virtio-serial device
src/conf/domain_addr.c | 348 +++++++++++++++++++++
src/conf/domain_addr.h | 56 ++++
src/conf/domain_conf.c | 29 --
src/libvirt_private.syms | 9 +
src/qemu/qemu_command.c | 63 ++++
src/qemu/qemu_domain.c | 1 +
src/qemu/qemu_domain.h | 1 +
src/qemu/qemu_hotplug.c | 31 +-
src/qemu/qemu_process.c | 2 +
tests/qemuhotplugtest.c | 2 +-
.../qemuxml2argv-channel-virtio-auto.args | 8 +-
.../qemuxml2argv-channel-virtio-autoassign.args | 20 ++
.../qemuxml2argv-channel-virtio-autoassign.xml | 50 +++
tests/qemuxml2argvtest.c | 2 +
.../qemuxml2xmlout-channel-virtio-auto.xml | 10 +-
15 files changed, 591 insertions(+), 41 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-autoassign.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-autoassign.xml
--
2.0.5
9 years, 8 months
[libvirt] [libvirt-glib] build-sys: Fix libtoolize detection in autogen.sh
by Christophe Fergeau
autogen.sh is currently checking for the libtool binary, but
it's libtoolize which is needed by autoreconf, not libtool.
These binaries are packaged separately on Debian/Ubuntu so this can
cause actual issues on some systems.
Bug reported by Frederic Peters
---
autogen.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/autogen.sh b/autogen.sh
index 8030ab1..4f7135f 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -10,7 +10,7 @@ cd $srcdir
DIE=0
-for prog in intltoolize autoreconf automake autoconf libtool
+for prog in intltoolize autoreconf automake autoconf libtoolize
do
($prog --version) < /dev/null > /dev/null 2>&1 || {
echo
--
2.3.3
9 years, 8 months
[libvirt] [PATCH] conf: fix running vm numa settings disappear after restart libvirtd
by Luyao Huang
5bba61f introduce a issue : when start a vm with <numa> settings and
restart libvirtd, numa settings will disappear. Because when parse the
vm states file, there is no node in "/domain/cpu/numa" this place.
Change to use ./cpu/numa instead of /domain/cpu/numa.
Signed-off-by: Luyao Huang <lhuang(a)redhat.com>
---
src/conf/numa_conf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c
index b92cb44..c34ba5f 100644
--- a/src/conf/numa_conf.c
+++ b/src/conf/numa_conf.c
@@ -663,10 +663,10 @@ virDomainNumaDefCPUParseXML(virDomainNumaPtr def,
int ret = -1;
/* check if NUMA definition is present */
- if (!virXPathNode("/domain/cpu/numa[1]", ctxt))
+ if (!virXPathNode("./cpu/numa[1]", ctxt))
return 0;
- if ((n = virXPathNodeSet("/domain/cpu/numa[1]/cell", ctxt, &nodes)) <= 0) {
+ if ((n = virXPathNodeSet("./cpu/numa[1]/cell", ctxt, &nodes)) <= 0) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("NUMA topology defined without NUMA cells"));
goto cleanup;
--
1.8.3.1
9 years, 8 months
[libvirt] [PATCH] RFC: Add domain vmport attribute
by Marc-André Lureau
The QEMU machine vmport option allows to set the VMWare IO port
emulation. This emulation is useful for absolute pointer input when the
guest has vmware input drivers, and is enabled by default for kvm.
However it is unnecessary for Spice-enabled VM, since the agent already
handles absolute pointer and multi-monitors. Furthermore, it prevents
Spice from switching to relative input since the regular ps/2 pointer
driver is replaced by the vmware driver. It is thus advised to disable
vmport when using a Spice VM. This will permit the Spice client to
switch from absolute to relative pointer, as it may be required for
certain games or applications.
---
PS: the patch could be split in domain+docs+qemu+test
docs/formatdomain.html.in | 7 +++++-
docs/schemas/domaincommon.rng | 8 +++++++
src/conf/domain_conf.c | 9 ++++++++
src/conf/domain_conf.h | 1 +
src/qemu/qemu_capabilities.c | 6 ++++++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 13 +++++++++++
.../qemuxml2argv-machine-vmport-opt.args | 6 ++++++
.../qemuxml2argv-machine-vmport-opt.xml | 25 ++++++++++++++++++++++
tests/qemuxml2argvtest.c | 2 ++
10 files changed, 77 insertions(+), 1 deletion(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.xml
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index be35c82..51d74d1 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -124,7 +124,12 @@
and <code>machine</code> referring to the machine
type. The <a href="formatcaps.html">Capabilities XML</a>
provides details on allowed values for
- these. <span class="since">Since 0.0.1</span></dd>
+ these. <span class="since">Since 0.0.1</span>
+ The optional <code>vmport</code> attribute (accepted values
+ are <code>yes</code> and <code>no</code>), sets the
+ emulation of VMWare IO port, for vmmouse etc. <span
+ class="since">Since 1.2.14</span>
+ </dd>
<dt><code>loader</code></dt>
<dd>The optional <code>loader</code> tag refers to a firmware blob
used to assist the domain creation process. It is used by Xen
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index ebd9299..da3c8c0 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -339,6 +339,14 @@
<ref name="hvmaarch64"/>
</choice>
</optional>
+ <optional>
+ <attribute name="vmport">
+ <choice>
+ <value>yes</value>
+ <value>no</value>
+ </choice>
+ </attribute>
+ </optional>
<value>hvm</value>
</element>
</define>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ae7d8df..d12598b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -14218,6 +14218,15 @@ virDomainDefParseXML(xmlDocPtr xml,
goto error;
}
+ tmp = virXPathString("string(./os/type[1]/@vmport)", ctxt);
+ if (tmp &&
+ (def->os.vmport = virTristateBoolTypeFromString(tmp)) <= 0) {
+ virReportError(VIR_ERR_OS_TYPE,
+ _("unknown vmport value: %s"), tmp);
+ goto error;
+ }
+ VIR_FREE(tmp);
+
/*
* Booting options for different OS types....
*
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 9d314fa..4cc2ff7 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1767,6 +1767,7 @@ struct _virDomainOSDef {
char *bootloader;
char *bootloaderArgs;
int smbios_mode;
+ int vmport; /* enum virTristateBool */
virDomainBIOSDef bios;
};
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index ccf22f0..f5481d3 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -279,6 +279,8 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
"qxl.vgamem_mb",
"qxl-vga.vgamem_mb",
"pc-dimm",
+
+ "machine-vmport-opt", /* 185 */
);
@@ -3239,6 +3241,10 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
if (qemuCaps->version >= 1003000)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_USB_OPT);
+ /* vmport option is supported v2.2.0 onwards */
+ if (qemuCaps->version >= 2002000)
+ virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_VMPORT_OPT);
+
/* WebSockets were introduced between 1.3.0 and 1.3.1 */
if (qemuCaps->version >= 1003001)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_VNC_WEBSOCKET);
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index c7b1ac7..48c8f96 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -224,6 +224,7 @@ typedef enum {
QEMU_CAPS_QXL_VGAMEM = 182, /* -device qxl.vgamem_mb */
QEMU_CAPS_QXL_VGA_VGAMEM = 183, /* -device qxl-vga.vgamem_mb */
QEMU_CAPS_DEVICE_PC_DIMM = 184, /* pc-dimm device */
+ QEMU_CAPS_MACHINE_VMPORT_OPT = 185, /* -machine xxx,vmport=on/off/auto */
QEMU_CAPS_LAST, /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 63d43d4..6410bf9 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7129,6 +7129,19 @@ qemuBuildMachineArgStr(virCommandPtr cmd,
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_USB_OPT))
virBufferAddLit(&buf, ",usb=off");
+ if (def->os.vmport) {
+ if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VMPORT_OPT)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("vmport is not available "
+ "with this QEMU binary"));
+ virBufferFreeAndReset(&buf);
+ return -1;
+ }
+
+ virBufferAsprintf(&buf, ",vmport=%s",
+ virTristateSwitchTypeToString(def->os.vmport));
+ }
+
if (def->mem.dump_core) {
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DUMP_GUEST_CORE)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.args b/tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.args
new file mode 100644
index 0000000..ea1a11f
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.args
@@ -0,0 +1,6 @@
+LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
+/usr/bin/qemu \
+-S -machine pc,accel=tcg,vmport=off -m 214 -smp 1 -nographic \
+-monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \
+-hda /dev/HostVG/QEMUGuest1 -net none -serial \
+none -parallel none
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.xml b/tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.xml
new file mode 100644
index 0000000..ee796f6
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-machine-vmport-opt.xml
@@ -0,0 +1,25 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>219100</memory>
+ <currentMemory unit='KiB'>219100</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc' vmport='no'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu</emulator>
+ <disk type='block' device='disk'>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='ide' index='0'/>
+ <memballoon model='virtio'/>
+ </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index fcf5218..dbd55a4 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -607,6 +607,8 @@ mymain(void)
DO_TEST_FAILURE("machine-core-on", QEMU_CAPS_MACHINE_OPT);
DO_TEST("machine-usb-opt", QEMU_CAPS_MACHINE_OPT,
QEMU_CAPS_MACHINE_USB_OPT);
+ DO_TEST("machine-vmport-opt", QEMU_CAPS_MACHINE_OPT,
+ QEMU_CAPS_MACHINE_VMPORT_OPT);
DO_TEST("kvm", QEMU_CAPS_MACHINE_OPT);
DO_TEST("boot-cdrom", NONE);
DO_TEST("boot-network", NONE);
--
2.1.0
9 years, 8 months
[libvirt] GSOC 2015: Libvirt Projects
by Richa Sehgal
Dear Mentors,
I am currently pursuing Master's in University of Illinois at Urbana
Champaign, USA and completed by B.Tech from Indian Institute of Technology
- Delhi (IIT- Delhi).
I am interested in contributing to Libvirt community through GSOC 2015. I
am using VirtualBox to run Ubuntu and have used VMware Player in the past.
Actually I am very interested in understanding virtualization at a more
practical level and do not want to limit myself to theoretical knowledge. I
have played with QEMU during the OS class, but I am new to Libvirt, and
thus would like to start with beginner level projects. There are two that I
found:
1. Enhancing libvirt-designer
2. Abstracting device address allocation
Are these projects still open, or students have already applied to them?
Are there any other projects that I can start with? I am really excited
about contributing to the libvirt project. Please let me know of a suitable
way of starting with these. I look forward for a useful engagement with the
community this summer. My irc name is: richashi.
Thanks
Richa
9 years, 8 months
[libvirt] [RFC PATCH v2 00/12] qemu: add support to hot-plug/unplug cpu device
by Zhu Guihua
If you apply the folowing patchset in order
[PATCH v3 0/7] cpu: add device_add foo-x86_64-cpu support
https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg01552.html,
[PATCH v2 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug
https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg03929.html
and [PATCH v2 00/11] cpu: add i386 cpu hot remove support
https://lists.nongnu.org/archive/html/qemu-devel/2015-01/msg01557.html,
qemu can support hotplug and hot-unplug cpu device.
So this patch series will make libvirt support hotplug and hot-unplug cpu
device for qemu driver.
This patch series add a new API to support cpu hot-plug/unplug, and leave the
existing API by invoking qemu command 'cpu-add' as a legacy.
This patch series realize cpu hot-plug/unplug by libvirt command
'attach-device' and 'detach-device', and invoke qemu command 'device_add'
and 'device_del' to support this feature.
v2:
- update cpu device's definition, and cpu's apic_id is hidded to users.
- add check for compatibility between host cpu and hot added cpu
- add a capability for *-x86_64-cpu
Zhu Guihua (12):
domain_conf: add support for cpu device configuration in XML
domain_conf: introduce cpu def helpers
domain_conf: introduce cpu device hotplug helpers
qemu_driver: implement cpu device hotplug on config level
qemu_command: introduce a func for cpu device alias assignment
domain_conf: allocate cpu's apic id dynamically
qemu: add a capability for x86_64-cpu
qemu: introduce qemuBuildCPUDeviceStr
qemu: implement cpu device hotplug on live level
qemu: implement cpu device hotunplug on live level
qemu_monitor_json: sort JSON array of cpu info
qemu_driver: detect threads corresponding to Vcpus
docs/formatdomain.html.in | 28 ++++
docs/schemas/domaincommon.rng | 3 +
src/conf/domain_conf.c | 189 +++++++++++++++++++++++++-
src/conf/domain_conf.h | 33 +++++
src/libvirt_private.syms | 6 +
src/qemu/qemu_capabilities.c | 3 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 120 +++++++++++++++++
src/qemu/qemu_command.h | 10 ++
src/qemu/qemu_driver.c | 299 ++++++++++++++++++++++++------------------
src/qemu/qemu_driver.h | 8 ++
src/qemu/qemu_hotplug.c | 140 ++++++++++++++++++++
src/qemu/qemu_hotplug.h | 12 ++
src/qemu/qemu_monitor_json.c | 31 ++++-
src/util/virbitmap.c | 2 +-
src/util/virbitmap.h | 2 +
16 files changed, 753 insertions(+), 134 deletions(-)
--
1.9.3
9 years, 8 months