From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH] Schedule shutdown fix Date: Mon, 10 Mar 2008 19:31:19 +0000 Message-ID: References: <47D588A5.4040200@virtualiron.com> Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <47D588A5.4040200@virtualiron.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ben Guthro , xen-devel List-Id: xen-devel@lists.xenproject.org Probably better fixed by calling vcpu_sleep_nosync() a bit more aggressively. I'll sort out a fix based around that. Nice catch! -- Keir On 10/3/08 19:14, "Ben Guthro" wrote: > domain_shutdown() needs to call raise_softirq(SCHEDULE_SOFTIRQ). > This forces the current vcpu to be rescheduled and paused. > Without this, during live migrate, if another vcpu has defer_shutdown==1 > then the current vcpu can return from domain_shutdown(), > do a vmenter, and continue running guest code, "resume" code that > should only be running on the receiving node! > > Signed-off-by: Robert Phillips > Signed-off-by: Ben Guthro > diff -r 4674efa621d4 xen/common/domain.c > --- a/xen/common/domain.c > +++ b/xen/common/domain.c > @@ -415,6 +415,7 @@ void domain_shutdown(struct domain *d, u > __domain_finalise_shutdown(d); > > spin_unlock(&d->shutdown_lock); > + raise_softirq(SCHEDULE_SOFTIRQ); > } > > void domain_resume(struct domain *d) > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel