Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 1264

kernel-2.6.18-194.11.1.el5.src.rpm

From: Tetsu Yamamoto <tyamamot@redhat.com>
Date: Mon, 21 Jan 2008 20:48:35 -0500
Subject: [ia64] xen: create 100GB mem guest, fix softlockup#2
Message-id: 20080121165220.15518.62022.sendpatchset@dhcp83-164.boston.redhat.com
O-Subject: [RHEL5.2 PATCH 4/4][Take2] Cannot create guest having 100GB memory on Xen-ia64
Bugzilla: 251353

# HG changeset patch
# User yamahata@xxxxxxxxxxxxx
# Date 1186648381 -32400
# Node ID b28786127bf9a973f8b8ac1f47ec469012c1d168
# Parent  840b9df48b6a4f0f569963dba01885bde2946b6b
prevent soft lockup when domain destroy. linux part.
repeat domain destroy hypercall until success.
PATCHNAME: prevent_soft_lockup_linux_part

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>

Acked-by: Bill Burns <bburns@redhat.com>
Acked-by: "Stephen C. Tweedie" <sct@redhat.com>

diff --git a/arch/ia64/xen/xcom_privcmd.c b/arch/ia64/xen/xcom_privcmd.c
index c80ea23..d950b17 100644
--- a/arch/ia64/xen/xcom_privcmd.c
+++ b/arch/ia64/xen/xcom_privcmd.c
@@ -384,7 +384,13 @@ xencomm_privcmd_domctl(privcmd_hypercall_t *hypercall)
 		return ret;
 	}
 
-	ret = xencomm_arch_hypercall_domctl (op_desc);
+	ret = xencomm_arch_hypercall_domctl(op_desc);
+	if (kern_op.cmd == XEN_DOMCTL_destroydomain) {
+		while (ret == -EAGAIN) {
+			schedule(); /* prevent softlock up message */
+			ret = xencomm_arch_hypercall_domctl(op_desc);
+		}
+	}
 
 	/* FIXME: should we restore the handle?  */
 	if (copy_to_user(user_op, &kern_op, sizeof(xen_domctl_t)))