From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: RE: Live migration fails due to c/s 20627 Date: Wed, 16 Dec 2009 09:38:25 -0800 Message-ID: <4B291B11.2030202@goop.org> References: <7e45dd6e-73f9-4f6a-8690-40cff3f468e7@default> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <7e45dd6e-73f9-4f6a-8690-40cff3f468e7@default> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Dan Magenheimer Cc: xen-devel@lists.xensource.com, kurt.hackel@oracle.com, "Dugger, Donald D" , "Xu, Dongxiao" , Keir Fraser , "Nakajima, Jun" , "Zhang, Xiantao" List-Id: xen-devel@lists.xenproject.org On 12/16/2009 08:23 AM, Dan Magenheimer wrote: > As Jeremy has pointed out, this cpu/node information is exactly > the same information that can be obtained by a system call. > So the only reason that rdtscp is better than using the > system call would be for performance. > No, not a system call. The vgetcpu vsyscall will return the info with no syscalls, regardless of whether rdtscp is available. It encodes the data in the segment limit of a special segment, and it can be read back with the "lsl" instruction. > Rdtscp is faster than a system call in many situations, but > now is often emulated in Xen (even on processors that do support > the hardware instruction*), so cannot be assumed to be much > faster than a system call. And the difference in performance > is only measurable if an app is executing rdtscp many thousands > of times every second. > "lsl" is probably at least as fast as rdtscp when executed natively, and definitely if rdtscp is emulated. > Suppose a guest believes it has eight cores on a single > processor/node. [...] > Suppose a guest believes it has a total of four cores, > two cores on each of two nodes. The pvops kernel never attempts to determine the underlying machine topology; it always assumes a single NUMA node. J