From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zachary Amsden Subject: Re: [KVM TSC trapping / migration 1/2] Add TSC trapping for SVM and VMX Date: Thu, 06 Jan 2011 10:03:48 -1000 Message-ID: <4D262024.1030300@redhat.com> References: <1294308645-31113-1-git-send-email-zamsden@redhat.com> <1294308645-31113-2-git-send-email-zamsden@redhat.com> <4D25A842.8090102@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: Avi Kivity Return-path: Received: from mx1.redhat.com ([209.132.183.28]:32354 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751523Ab1AFUDw (ORCPT ); Thu, 6 Jan 2011 15:03:52 -0500 In-Reply-To: <4D25A842.8090102@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 01/06/2011 01:32 AM, Avi Kivity wrote: > 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. > That will be included when I port to upstream head. When dealing with software documentation, too much is never enough. Zach