From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [Patch] remove unneeded test for cpu in cpupool Date: Wed, 16 Mar 2011 11:36:43 +0100 Message-ID: <4D8092BB.4030006@ts.fujitsu.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed 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: "Przywara, Andre" , "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On 03/16/11 11:13, Keir Fraser wrote: > On 16/03/2011 06:34, "Juergen Gross" wrote: > >> Hi, >> >> attached patch removes an unneeded check in vcpu_migrate(). >> >> Andre, could you please give it a try on your 48 core machine with >> >> xl cpupool-numa-split >> >> I'd like to make sure the check is really not needed. On my machines it worked >> okay, but your machine seems to trigger races more easily. > > Could you BUG_ON failing this test when we exit the retry loop? It seems a > suitable loop post-condition. Not easily. The cpu_valid mask of a cpupool might change between the call of pick_cpu and the test. In the normal case this is okay, as removing a cpu from a cpupool (which is the critical case) will call cpu_disable_scheduler() after removing the cpu from the mask, which will migrate the vcpu away. Using a saved copy of cpu_valid for the test isn't working either, if a cpu is added to and removed from the cpupool in a very short time. I would have to use a generation count for the cpu_valid mask and do the check only if the count didn't change. I think this is little bit of overkill here, but if you'd prefer it, I can do a patch. 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