From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar Subject: Re: Performance overhead of get_cycles_sync Date: Tue, 11 Dec 2007 14:37:38 +0100 Message-ID: <20071211133738.GA8150@elte.hu> References: <475E8C8B.7070308@qumranet.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: tglx@linutronix.de, Linux Kernel Mailing List , kvm-devel To: dor.laor@qumranet.com Return-path: Content-Disposition: inline In-Reply-To: <475E8C8B.7070308@qumranet.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org * Dor Laor wrote: > Hi Ingo, Thomas, > > In the latest kernel (2.6.24-rc3) I noticed a drastic performance > decrease for KVM networking. The reason is many vmexit (exit reason is > cpuid instruction) caused by calls to gettimeofday that uses tsc > sourceclock. read_tsc calls get_cycles_sync which might call cpuid in > order to serialize the cpu. > > Can you explain why the cpu needs to be serialized for every gettime > call? Do we need to be that accurate? (It will also slightly improve > physical hosts). I believe you have a reason and the answer is yes. In > that case can you replace the serializing instruction with an > instruction that does not trigger vmexit? Maybe use 'ltr' for example? hm, where exactly does it call CPUID? Ingo