All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zachary Amsden <zamsden@redhat.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: kvm@vger.kernel.org, Avi Kivity <avi@redhat.com>,
	Glauber Costa <glommer@redhat.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [KVM TSC trapping / migration 1/2] Add TSC trapping for SVM and VMX
Date: Sat, 08 Jan 2011 22:05:59 -1000	[thread overview]
Message-ID: <4D296C67.4020309@redhat.com> (raw)
In-Reply-To: <20110107112334.GB12056@amt.cnet>

On 01/07/2011 01:23 AM, Marcelo Tosatti wrote:
> On Thu, Jan 06, 2011 at 12:10:44AM -1000, 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<zamsden@redhat.com>
>> ---
>>   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(-)
>>      
> - Docs / test case please.
>    

Yes, will do.

> - KVM_TSC_CONTROL ioctl ignores flags field.
>    

Oops.

> - What is the purpose of PVCLOCK_TSC_TRAPPED_BIT?
>    

To allow RDTSCP optimizations for KVM clock when TSC is trapped (because 
a userspace application requires strict TSC).

> - Fail to see purpose of module parameters. Configuration from qemu
>    should be enough?
>    

For users with older versions of qemu who wish to take advantage of the 
feature, or performance / bug testing.  And oops here, the tsc_trap 
should not default to on.

  reply	other threads:[~2011-01-09  8:06 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-06 10:10 KVM TSC trapping Zachary Amsden
2011-01-06 10:10 ` [KVM TSC trapping / migration 1/2] Add TSC trapping for SVM and VMX Zachary Amsden
2011-01-06 10:41   ` Alexander Graf
2011-01-06 11:30     ` Zachary Amsden
2011-01-06 11:38       ` Alexander Graf
2011-01-06 20:24         ` Zachary Amsden
2011-01-06 22:38           ` Alexander Graf
2011-01-07  3:10             ` Zachary Amsden
2011-01-06 11:32   ` Avi Kivity
2011-01-06 20:03     ` Zachary Amsden
2011-01-07 11:23   ` Marcelo Tosatti
2011-01-09  8:05     ` Zachary Amsden [this message]
2011-01-10 11:52   ` Joerg Roedel
2011-01-06 10:10 ` Zachary Amsden
2011-01-06 10:10 ` [KVM TSC trapping / migration 2/2] Add TSC KHZ MSR Zachary Amsden
2011-01-06 10:34   ` Alexander Graf
2011-01-06 11:27     ` Zachary Amsden
2011-01-06 11:40       ` Alexander Graf
2011-01-06 20:34         ` Zachary Amsden
2011-01-07 10:48   ` Marcelo Tosatti
2011-01-07 20:44     ` Zachary Amsden
2011-01-10 13:50       ` Marcelo Tosatti
2011-01-14 11:00         ` Juan Quintela
2011-01-18 15:47           ` Zachary Amsden

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D296C67.4020309@redhat.com \
    --to=zamsden@redhat.com \
    --cc=avi@redhat.com \
    --cc=glommer@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.