From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [Patch] continue_hypercall_on_cpu rework using tasklets Date: Wed, 14 Apr 2010 08:58:26 +0200 Message-ID: <4BC56792.2000605@ts.fujitsu.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 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: Keir Fraser Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org Keir Fraser wrote: > On 14/04/2010 05:26, "Juergen Gross" wrote: > >>> Why do you change the interface of continue_hypercall_on_cpu()? What's a >>> 'hdl' anyway? >> I need a way to find the migrate_info structure in case of nested calls of >> continue_hypercall_on_cpu(). Originally this was done by storing it in the >> vcpu structure, but this can't be done any more using tasklets. In my first >> attempt I saved it in the per-cpu area, but this approach isn't working if >> continue_hypercall_on_cpu() is called concurrently. So the cleanest way is >> to pass it via a parameter. > > The per-cpu area method should work fine, since Xen is non-preemptive? I > don't think the concurrency you are concerned about can happen. The tasklet knows only on which cpu it is running, so the data has to be stored on the target cpu. And one pcpu can be the target of concurrent calls from different calling cpus... Juergen -- Juergen Gross Principal Developer Operating Systems TSP ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967 Fujitsu Technology Solutions e-mail: juergen.gross@ts.fujitsu.com Domagkstr. 28 Internet: ts.fujitsu.com D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html