[libvirt] [PATCH v2 1/2] conf: expose virDomainBootType(From|To)String
by Roman Bogorodskiy
These functions are going to be used by the Bhyve driver.
---
src/libvirt_private.syms | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 1e51dcf..50f0b3f 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -152,6 +152,8 @@ virDiskNameToIndex;
virDomainActualNetDefFree;
virDomainBlockedReasonTypeFromString;
virDomainBlockedReasonTypeToString;
+virDomainBootTypeFromString;
+virDomainBootTypeToString;
virDomainCapabilitiesPolicyTypeToString;
virDomainCapsFeatureTypeToString;
virDomainChrConsoleTargetTypeFromString;
--
2.4.6
8 years, 10 months
[libvirt] [PATCH v2] vmx: Adapt to emptyBackingString for cdrom-image
by Michal Privoznik
https://bugzilla.redhat.com/show_bug.cgi?id=1266088
We are missing this value for cdrom-image device. Honestly, I
have no idea whether it can happen for other disk devices too.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
diff to v1:
-extened support for scsi CDROM too
-added formatting code
-added couple of tests
src/vmx/vmx.c | 38 +++++++++++++++++++++-----
tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.vmx | 5 ++++
tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.xml | 23 ++++++++++++++++
tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.vmx | 6 ++++
tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.xml | 23 ++++++++++++++++
tests/vmx2xmltest.c | 3 ++
tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.vmx | 13 +++++++++
tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.xml | 13 +++++++++
tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.vmx | 14 ++++++++++
tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.xml | 13 +++++++++
tests/xml2vmxtest.c | 2 ++
11 files changed, 146 insertions(+), 7 deletions(-)
create mode 100644 tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.vmx
create mode 100644 tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.xml
create mode 100644 tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.vmx
create mode 100644 tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.xml
create mode 100644 tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.vmx
create mode 100644 tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.xml
create mode 100644 tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.vmx
create mode 100644 tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.xml
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index d1cdad3..10fec74 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -2246,6 +2246,16 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt, virConfPtr con
* call to this function to parse a CDROM device may handle it.
*/
goto ignore;
+ } else if (STREQ(fileName, "emptyBackingString")) {
+ if (deviceType && STRCASENEQ(deviceType, "cdrom-image")) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Expecting VMX entry '%s' to be 'cdrom-image' "
+ "but found '%s'"), deviceType_name, deviceType);
+ goto cleanup;
+ }
+
+ virDomainDiskSetType(*def, VIR_STORAGE_TYPE_FILE);
+ ignore_value(virDomainDiskSetSource(*def, NULL));
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Invalid or not yet handled value '%s' "
@@ -2319,6 +2329,16 @@ virVMXParseDisk(virVMXContext *ctx, virDomainXMLOptionPtr xmlopt, virConfPtr con
*/
goto ignore;
}
+ } else if (STREQ(fileName, "emptyBackingString")) {
+ if (deviceType && STRCASENEQ(deviceType, "cdrom-image")) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Expecting VMX entry '%s' to be 'cdrom-image' "
+ "but found '%s'"), deviceType_name, deviceType);
+ goto cleanup;
+ }
+
+ virDomainDiskSetType(*def, VIR_STORAGE_TYPE_FILE);
+ ignore_value(virDomainDiskSetSource(*def, NULL));
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Invalid or not yet handled value '%s' "
@@ -3526,15 +3546,19 @@ virVMXFormatDisk(virVMXContext *ctx, virDomainDiskDefPtr def,
if (type == VIR_STORAGE_TYPE_FILE) {
const char *src = virDomainDiskGetSource(def);
- if (src && ! virFileHasSuffix(src, fileExt)) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Image file for %s %s '%s' has "
- "unsupported suffix, expecting '%s'"),
- busType, deviceType, def->dst, fileExt);
+ if (src) {
+ if (!virFileHasSuffix(src, fileExt)) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Image file for %s %s '%s' has "
+ "unsupported suffix, expecting '%s'"),
+ busType, deviceType, def->dst, fileExt);
return -1;
- }
+ }
- fileName = ctx->formatFileName(src, ctx->opaque);
+ fileName = ctx->formatFileName(src, ctx->opaque);
+ } else {
+ ignore_value(VIR_STRDUP(fileName, "emptyBackingString"));
+ }
if (fileName == NULL)
return -1;
diff --git a/tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.vmx b/tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.vmx
new file mode 100644
index 0000000..62fdb3d
--- /dev/null
+++ b/tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.vmx
@@ -0,0 +1,5 @@
+config.version = "8"
+virtualHW.version = "4"
+ide0:0.present = "true"
+ide0:0.deviceType = "cdrom-image"
+ide0:0.fileName = "emptyBackingString"
diff --git a/tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.xml b/tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.xml
new file mode 100644
index 0000000..232200b
--- /dev/null
+++ b/tests/vmx2xmldata/vmx2xml-cdrom-ide-empty.xml
@@ -0,0 +1,23 @@
+<domain type='vmware'>
+ <uuid>00000000-0000-0000-0000-000000000000</uuid>
+ <memory unit='KiB'>32768</memory>
+ <currentMemory unit='KiB'>32768</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686'>hvm</type>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <disk type='file' device='disk'>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='ide' index='0'/>
+ <video>
+ <model type='vmvga' vram='4096'/>
+ </video>
+ </devices>
+</domain>
diff --git a/tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.vmx b/tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.vmx
new file mode 100644
index 0000000..3c6036a
--- /dev/null
+++ b/tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.vmx
@@ -0,0 +1,6 @@
+config.version = "8"
+virtualHW.version = "4"
+scsi0.present = "true"
+scsi0:0.present = "true"
+scsi0:0.deviceType = "cdrom-image"
+scsi0:0.fileName = "emptyBackingString"
diff --git a/tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.xml b/tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.xml
new file mode 100644
index 0000000..f2e4c75
--- /dev/null
+++ b/tests/vmx2xmldata/vmx2xml-cdrom-scsi-empty.xml
@@ -0,0 +1,23 @@
+<domain type='vmware'>
+ <uuid>00000000-0000-0000-0000-000000000000</uuid>
+ <memory unit='KiB'>32768</memory>
+ <currentMemory unit='KiB'>32768</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686'>hvm</type>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <disk type='file' device='disk'>
+ <target dev='sda' bus='scsi'/>
+ <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+ </disk>
+ <controller type='scsi' index='0'/>
+ <video>
+ <model type='vmvga' vram='4096'/>
+ </video>
+ </devices>
+</domain>
diff --git a/tests/vmx2xmltest.c b/tests/vmx2xmltest.c
index 0bbf055..a22af75 100644
--- a/tests/vmx2xmltest.c
+++ b/tests/vmx2xmltest.c
@@ -219,14 +219,17 @@ mymain(void)
DO_TEST("harddisk-transient", "harddisk-transient");
DO_TEST("cdrom-scsi-file", "cdrom-scsi-file");
+ DO_TEST("cdrom-scsi-empty", "cdrom-scsi-empty");
DO_TEST("cdrom-scsi-device", "cdrom-scsi-device");
DO_TEST("cdrom-scsi-raw-device", "cdrom-scsi-raw-device");
DO_TEST("cdrom-scsi-raw-auto-detect", "cdrom-scsi-raw-auto-detect");
DO_TEST("cdrom-scsi-passthru", "cdrom-scsi-passthru");
DO_TEST("cdrom-ide-file", "cdrom-ide-file");
+ DO_TEST("cdrom-ide-empty", "cdrom-ide-empty");
DO_TEST("cdrom-ide-device", "cdrom-ide-device");
DO_TEST("cdrom-ide-raw-device", "cdrom-ide-raw-device");
DO_TEST("cdrom-ide-raw-auto-detect", "cdrom-ide-raw-auto-detect");
+ DO_TEST("cdrom-ide-raw-auto-detect", "cdrom-ide-raw-auto-detect");
DO_TEST("floppy-file", "floppy-file");
DO_TEST("floppy-device", "floppy-device");
diff --git a/tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.vmx b/tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.vmx
new file mode 100644
index 0000000..45c7950
--- /dev/null
+++ b/tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.vmx
@@ -0,0 +1,13 @@
+.encoding = "UTF-8"
+config.version = "8"
+virtualHW.version = "4"
+guestOS = "other"
+uuid.bios = "56 4d 9b ef ac d9 b4 e0-c8 f0 ae a8 b9 10 35 15"
+displayName = "cdrom-ide-file"
+memsize = "4"
+numvcpus = "1"
+ide0:0.present = "true"
+ide0:0.deviceType = "cdrom-image"
+ide0:0.fileName = "emptyBackingString"
+floppy0.present = "false"
+floppy1.present = "false"
diff --git a/tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.xml b/tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.xml
new file mode 100644
index 0000000..219603e
--- /dev/null
+++ b/tests/xml2vmxdata/xml2vmx-cdrom-ide-empty.xml
@@ -0,0 +1,13 @@
+<domain type='vmware'>
+ <name>cdrom-ide-file</name>
+ <uuid>564d9bef-acd9-b4e0-c8f0-aea8b9103515</uuid>
+ <memory unit='KiB'>4096</memory>
+ <os>
+ <type>hvm</type>
+ </os>
+ <devices>
+ <disk type='file' device='cdrom'>
+ <target dev='hda' bus='ide'/>
+ </disk>
+ </devices>
+</domain>
diff --git a/tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.vmx b/tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.vmx
new file mode 100644
index 0000000..1097cb1
--- /dev/null
+++ b/tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.vmx
@@ -0,0 +1,14 @@
+.encoding = "UTF-8"
+config.version = "8"
+virtualHW.version = "4"
+guestOS = "other"
+uuid.bios = "56 4d 9b ef ac d9 b4 e0-c8 f0 ae a8 b9 10 35 15"
+displayName = "cdrom-scsi-empty"
+memsize = "4"
+numvcpus = "1"
+scsi0.present = "true"
+scsi0:0.present = "true"
+scsi0:0.deviceType = "cdrom-image"
+scsi0:0.fileName = "emptyBackingString"
+floppy0.present = "false"
+floppy1.present = "false"
diff --git a/tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.xml b/tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.xml
new file mode 100644
index 0000000..a5a6d80
--- /dev/null
+++ b/tests/xml2vmxdata/xml2vmx-cdrom-scsi-empty.xml
@@ -0,0 +1,13 @@
+<domain type='vmware'>
+ <name>cdrom-scsi-empty</name>
+ <uuid>564d9bef-acd9-b4e0-c8f0-aea8b9103515</uuid>
+ <memory unit='KiB'>4096</memory>
+ <os>
+ <type>hvm</type>
+ </os>
+ <devices>
+ <disk type='file' device='cdrom'>
+ <target dev='sda' bus='scsi'/>
+ </disk>
+ </devices>
+</domain>
diff --git a/tests/xml2vmxtest.c b/tests/xml2vmxtest.c
index 32bad5f..d970240 100644
--- a/tests/xml2vmxtest.c
+++ b/tests/xml2vmxtest.c
@@ -235,11 +235,13 @@ mymain(void)
DO_TEST("harddisk-ide-file", "harddisk-ide-file", 4);
DO_TEST("cdrom-scsi-file", "cdrom-scsi-file", 4);
+ DO_TEST("cdrom-scsi-empty", "cdrom-scsi-empty", 4);
DO_TEST("cdrom-scsi-device", "cdrom-scsi-device", 4);
DO_TEST("cdrom-scsi-raw-device", "cdrom-scsi-raw-device", 4);
DO_TEST("cdrom-scsi-raw-auto-detect", "cdrom-scsi-raw-auto-detect", 4);
DO_TEST("cdrom-scsi-passthru", "cdrom-scsi-passthru", 4);
DO_TEST("cdrom-ide-file", "cdrom-ide-file", 4);
+ DO_TEST("cdrom-ide-empty", "cdrom-ide-empty", 4);
DO_TEST("cdrom-ide-device", "cdrom-ide-device", 4);
DO_TEST("cdrom-ide-raw-device", "cdrom-ide-raw-device", 4);
DO_TEST("cdrom-ide-raw-auto-detect", "cdrom-ide-raw-auto-detect", 4);
--
2.4.10
8 years, 10 months
[libvirt] [PATCH v4] libvirtd: Increase NL buffer size for lots of interface
by Leno Hou
1. When switching CPUs to offline/online in a system more than 128 cpus
2. When using virsh to destroy domain in a system with more interface
All of above happens nl_recv returned with error: No buffer space available.
This patch sets the socket buffer size to 128K and turns on message peeking
on new function virNetlinkAlloc,as this would solve this problem totally
and permanetly.
Signed-off-by: Leno Hou <houqy(a)linux.vnet.ibm.com>
Cc: Wenyi Gao <wenyi(a)linux.vnet.ibm.com>
CC: Laine Stump <laine(a)laine.org>
CC: Michal Privoznik <mprivozn(a)redhat.com>
---
src/util/virnetlink.c | 42 ++++++++++++++++++++++++++++++++++++++----
src/util/virnetlink.h | 7 +++++++
2 files changed, 45 insertions(+), 4 deletions(-)
diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c
index 679b48e..02f5215 100644
--- a/src/util/virnetlink.c
+++ b/src/util/virnetlink.c
@@ -64,13 +64,11 @@ struct virNetlinkEventHandle {
};
# ifdef HAVE_LIBNL1
-# define virNetlinkAlloc nl_handle_alloc
+# define virSocketSetBufferSize nl_set_buffer_size
# define virNetlinkFree nl_handle_destroy
-typedef struct nl_handle virNetlinkHandle;
# else
-# define virNetlinkAlloc nl_socket_alloc
+# define virSocketSetBufferSize nl_socket_set_buffer_size
# define virNetlinkFree nl_socket_free
-typedef struct nl_sock virNetlinkHandle;
# endif
typedef struct _virNetlinkEventSrvPrivate virNetlinkEventSrvPrivate;
@@ -108,6 +106,42 @@ static virNetlinkHandle *placeholder_nlhandle;
/* Function definitions */
/**
+ * virNetlinkAlloc
+ *
+ * Perform netlink allocation which was defined differently for libnl3
+ * vs libnl-1, and did all of three in one function
+ * 1) create socket
+ * 2) set larger buffer size
+ * 3) turn on message peeking
+ *
+ * see the following email message:
+ * https://www.redhat.com/archives/libvir-list/2016-January/msg00536.html
+ *
+ * Returns virNetlinkHandle
+ */
+virNetlinkHandle *virNetlinkAlloc(void)
+{
+ virNetlinkHandle *netlinknh;
+ #ifdef HAVE_LIBNL1
+ netlinknh = nl_handle_alloc();
+ #else
+ netlinknh = nl_socket_alloc();
+ #endif
+
+ if (virSocketSetBufferSize(netlinknh,131702,0) >= 0) {
+ nl_socket_enable_msg_peek(netlinknh);
+ return netlinknh;
+ }
+
+ virReportSystemError(errno,
+ "%s",_("can not set socket buffer size to 128k"));
+
+ virNetlinkFree(netlinknh);
+
+ return NULL;
+}
+
+/**
* virNetlinkStartup:
*
* Perform any initialization that needs to take place before the
diff --git a/src/util/virnetlink.h b/src/util/virnetlink.h
index 0664a7a..b4a2010 100644
--- a/src/util/virnetlink.h
+++ b/src/util/virnetlink.h
@@ -44,6 +44,13 @@ struct nlmsghdr;
# endif /* __linux__ */
+# ifdef HAVE_LIBNL1
+typedef struct nl_handle virNetlinkHandle;
+# else
+typedef struct nl_sock virNetlinkHandle;
+# endif
+virNetlinkHandle *virNetlinkAlloc(void);
+
int virNetlinkStartup(void);
void virNetlinkShutdown(void);
--
1.9.1
8 years, 10 months
Re: [libvirt] Accessing libvirtd remotely as non-root user
by Warren Usui
I joined this mailing list after I googled and found this thread.
https://www.redhat.com/archives/libvir-list/2015-June/msg00583.html
Part of this thread read:
>So, further digging led me to [2], which in essence was the section of the
libvirtd wiki page that the page claimed >was obsolete. Creating the .pkla
authorization file finally enabled non-root privileged user management of a
remote > >KVM host.
I was having this same problem, and I believe that what was needed was just
the last usermod that added the non-root user to the libvirt group. I did
just that one line and things seemed to be much happier.
8 years, 10 months
[libvirt] [PATCH 0/7] PCI hostdev refactoring
by Andrea Bolognani
This series is part of my ongoing quest to fix Bug 1272300[1].
I had previously posted a mostly complete solution[2], which did however
fail to handle devices detached / reattached using virsh's nodedev-*
commands. Part of that series has already been merged.
This series refactors the PCI hostdev code so that all detach / reattach
operations go through a single function, which means that once the
previous code is reimplemented on top of it, all cases will be handled
correctly.
One problem with the previous code is that bookkeeping was performed all
over the place, making it very easy to introduce subtle bugs. After this
refactoring it's hopefully easier to follow along.
Despite this being a refactoring, it introduces some changes in
behaviour. These changes do, in fact, improve consistency, and should
not cause any issue AFAICT, but they're still worth mentioning and
thinking over.
Basically, every time a device is detached from the host, its original
status will be restored once it's reattached, which means that if it was
not bound to any driver when 'virsh nodedev-detach' is called, it will
not be bound to any driver after 'virsh nodedev-reattach' is called.
This is the same thing that used to happen, and still happens, when such
a managed PCI hostdev is attached and then detached from a guest.
One more thing worth mentioning is that the code now relies heavily on
libvirt's internal state, ie. the list of active and inactive PCI
hostdevs. These lists do not currently survive daemon restarts, so the
series is unfit for merge until that detail is sorted out. It's unclear
to me how I could go about that, any suggestion?
Cheers.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1272300
[2] https://www.redhat.com/archives/libvir-list/2015-December/msg00070.html
Andrea Bolognani (7):
hostdev: Add reattachPCIDevices()
hostdev: Use common reattach code to rollback prepare errors
hostdev: Use common reattach code in virHostdevPCINodeDeviceReAttach()
hostdev: Add detachPCIDevices()
hostdev: Use common detach code in virHostdevPCINodeDeviceDetach()
pci: Phase out virPCIDeviceReattachInit()
pci: Add debug messages when unbinding from stub driver
src/libvirt_private.syms | 1 -
src/util/virhostdev.c | 389 +++++++++++++++++++++++++++++------------------
src/util/virpci.c | 30 ++--
src/util/virpci.h | 1 -
tests/virpcitest.c | 5 +-
5 files changed, 267 insertions(+), 159 deletions(-)
--
2.5.0
8 years, 10 months
[libvirt] [PATCH 0/2] macvtap/802.1Qbh fixes
by Laine Stump
The first patch generally improves performance when creating a lot of
macvtap devices. It was inspired by Tony Krowiak's email back in
November.
The 2nd patch eliminates a bogus error when destroying a macvtap
passthrough device that is using 802.1Qbh.
Laine Stump (2):
util: keep/use a bitmap of in-use macvtap devices
util: reset MAC address of macvtap passthrough physdev after
disassociate
src/libvirt_private.syms | 2 +
src/qemu/qemu_process.c | 10 +-
src/util/virnetdevmacvlan.c | 454 +++++++++++++++++++++++++++++++++++++-------
src/util/virnetdevmacvlan.h | 5 +-
4 files changed, 398 insertions(+), 73 deletions(-)
--
2.5.0
8 years, 10 months
[libvirt] [PATCH v2 00/15] Implement post-copy migration
by Jiri Denemark
(See "Add public APIs for post-copy migration" patch for more details
about post-copy migration.)
Post-copy support was originally written by Cristian Klein in 2014, but
no one touched the series since then. Some patches in this series are
modified versions of the old patches from Cristian, some patches had to
be rewritten from scratch since libvirt code changed a lot (we started
using migration events), and some patches are completely new.
While post-copy migration is included in QEMU 2.5.0, it didn't support
everything libvirt needs. Thus you need QEMU from git to use post-copy.
Luckily, the QEMU migration capability we need to enable to use
post-copy is still prefixed with "x-", which means it's still considered
experimental. Once we are sure QEMU gives us all we need, the "x-"
prefix will be removed.
Seamless SPICE migration doesn't work with post-copy now, but I'll look
at that. Fetching statistics of a completed post-copy migration does not
work either (libvirt would report incorrect data).
This series (VIR_MIGRATE_POSTCOPY_AFTER_PRECOPY support) depends on
"Introduce migration iteration event" series I sent yesterday.
Version 2:
- VIR_MIGRATE_POSTCOPY_AFTER_PRECOPY flag dropped
- --postcopy-after-precopy implemented entirely in virsh
Cristian Klein (6):
Add public APIs for post-copy migration
qemu: Add QMP functions for post-copy migration
qemu: Add support for VIR_MIGRATE_POSTCOPY flag
qemu: Implement virDomainMigrateStartPostCopy
virsh: Add support for post-copy migration
virsh: Add --postcopy-after-precopy option to migrate
Jiri Denemark (9):
Add event and state details for post-copy
qemu: Don't explicitly stop CPUs after migration
qemu: Handle postcopy-active migration state
virsh: Configurable migrate --timeout action
qemu: Don't kill running migrated domain on daemon restart
qemu: Refactor qemuProcessRecoverMigration
qemu: Handle post-copy migration failures
qemu: Refuse to abort migration in post-copy mode
qemu: Add flags to qemuMigrationWaitForCompletion
examples/object-events/event-test.c | 9 ++
include/libvirt/libvirt-domain.h | 11 ++
src/conf/domain_conf.c | 7 +-
src/driver-hypervisor.h | 5 +
src/libvirt-domain.c | 114 +++++++++++++++
src/libvirt_public.syms | 4 +
src/qemu/qemu_domain.c | 1 +
src/qemu/qemu_domain.h | 3 +
src/qemu/qemu_driver.c | 72 ++++++++-
src/qemu/qemu_migration.c | 283 ++++++++++++++++++++++++++++++------
src/qemu/qemu_migration.h | 6 +-
src/qemu/qemu_monitor.c | 16 +-
src/qemu/qemu_monitor.h | 4 +
src/qemu/qemu_monitor_json.c | 23 +++
src/qemu/qemu_monitor_json.h | 3 +
src/qemu/qemu_process.c | 249 +++++++++++++++++++------------
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 13 +-
src/remote_protocol-structs | 5 +
tools/virsh-domain-monitor.c | 7 +-
tools/virsh-domain.c | 158 ++++++++++++++++++--
tools/virsh.pod | 31 +++-
22 files changed, 865 insertions(+), 160 deletions(-)
--
2.7.0
8 years, 10 months
[libvirt] [PATCH 0/4] lxc: fix 'free' usage on fedora 23
by Cole Robinson
We need to add a few bits to our /proc/meminfo virtualization to
make 'free' work correctly on Fedora 23.
https://bugzilla.redhat.com/show_bug.cgi?id=1300781
Cole Robinson (4):
lxc: fuse: Unindent meminfo logic
lxc: fuse: Fix /proc/meminfo size calculation
lxc: fuse: Fill in MemAvailable for /proc/meminfo
lxc: fuse: Stub out Slab bits in /proc/meminfo
src/lxc/lxc_fuse.c | 141 +++++++++++++++++++++++++++++------------------------
1 file changed, 76 insertions(+), 65 deletions(-)
--
2.5.0
8 years, 10 months