From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [KVM TSC trapping / migration 1/2] Add TSC trapping for SVM and VMX Date: Thu, 06 Jan 2011 13:32:18 +0200 Message-ID: <4D25A842.8090102@redhat.com> References: <1294308645-31113-1-git-send-email-zamsden@redhat.com> <1294308645-31113-2-git-send-email-zamsden@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, Marcelo Tosatti , Glauber Costa , linux-kernel@vger.kernel.org To: Zachary Amsden Return-path: In-Reply-To: <1294308645-31113-2-git-send-email-zamsden@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 01/06/2011 12:10 PM, Zachary Amsden wrote: > Reasons to trap the TSC are numerous, but we want to avoid it as much > as possible for performance reasons. > > We provide two conservative modes via modules parameters and userspace > hinting. First, the module can be loaded with "tsc_auto=1" as a module > parameter, which turns on conservative TSC trapping only when it is > required (when unstable TSC or faster KHZ CPU is detected). > > For userspace hinting, we enable trapping only if necessary. Userspace > can hint that a VM needs a fixed frequency TSC, and also that SMP > stability will be required. In that case, we conservatively turn on > trapping when it is needed. In addition, users may now specify the > desired TSC rate at which to run. If this rate differs significantly > from the host rate, trapping will be enabled. > > There is also an override control to allow TSC trapping to be turned on > or off unconditionally for testing. > > We indicate to pvclock users that the TSC is being trapped, to allow > avoiding overhead and directly using RDTSCP (only for SVM). This > optimization is not yet implemented. > > Signed-off-by: Zachary Amsden > --- > arch/x86/include/asm/kvm_host.h | 6 +- > arch/x86/include/asm/pvclock-abi.h | 1 + > arch/x86/kvm/svm.c | 20 ++++++ > arch/x86/kvm/vmx.c | 21 +++++++ > arch/x86/kvm/x86.c | 113 +++++++++++++++++++++++++++++++++--- > arch/x86/kvm/x86.h | 2 + > include/linux/kvm.h | 15 +++++ > 7 files changed, 168 insertions(+), 10 deletions(-) Haven't reviewed yet, but Documentation/kvm/api.txt is missing here. -- error compiling committee.c: too many arguments to function