From: Keir Fraser Subject: Re: [Patch] continue_hypercall_on_cpu rework using tasklets Date: Thu, 15 Apr 2010 09:22:04 +0100 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Juergen Gross Cc: "xen-devel@lists.xensource.com" , "Jiang, Yunhong" List-Id: xen-devel@lists.xenproject.org On 15/04/2010 09:13, "Keir Fraser" wrote: > Better hope so or e.g., > acpi_enter_sleep > ->continue_hypercall_on_cpu(enter_state_helper) > ->enter_state > ->freeze_domains > ->domain_pause > ->vcpu_sleep_sync > ->sync_vcpu_execstate > Also wouldn't work. Actually that's a good example because it now won't work, but for other reasons! The hypercall continuation can interrupt another vcpu's execution, and then try to synchronously pause that vcpu. Which will deadlock. Luckily I think we can re-jig this code to freeze_domains() before doing the continue_hypercall_on_cpu(). I've cc'ed one of the CPU RAS guys. :-) -- Keir