[libvirt] [PATCH] libxl: Use cooperative resume for migration

Migration code specifies the problematic non-cooperative resume mode which is a known issue with Xen's libxl [1]. Instead, use the better supported cooperative mode. Without this, guests BUG() in xen_irq_resume after failing to bind still-bound event channels. [1] http://bugs.xenproject.org/xen/bug/30 --- src/libxl/libxl_migration.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index a25edf0..53d961c 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -147,7 +147,7 @@ libxlDoMigrateSend(libxlDriverPrivatePtr driver, xl_flags, NULL); if (ret != 0) { /* attempt to resume the domain on failure */ - if (libxl_domain_resume(priv->ctx, vm->def->id, 0, 0) != 0) { + if (libxl_domain_resume(priv->ctx, vm->def->id, 1, 0) != 0) { VIR_DEBUG("Failed to resume domain following failed migration"); virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_MIGRATION); -- 1.8.3.1

Jason Andryuk wrote:
Migration code specifies the problematic non-cooperative resume mode which is a known issue with Xen's libxl [1]. Instead, use the better supported cooperative mode.
Without this, guests BUG() in xen_irq_resume after failing to bind still-bound event channels.
Thanks for the bug link. Of particular interest is Ian Campbell's comment on 8 Jan 2014 13:02:24, which confirms we should be calling libxl_domain_resume with suspend_cancel=1.
--- src/libxl/libxl_migration.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index a25edf0..53d961c 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -147,7 +147,7 @@ libxlDoMigrateSend(libxlDriverPrivatePtr driver, xl_flags, NULL); if (ret != 0) { /* attempt to resume the domain on failure */ - if (libxl_domain_resume(priv->ctx, vm->def->id, 0, 0) != 0) { + if (libxl_domain_resume(priv->ctx, vm->def->id, 1, 0) != 0) {
Also verified xl does this. ACK and will push shortly. Thanks! Regards, Jim
participants (2)
-
Jason Andryuk
-
Jim Fehlig