lkml.org 
[lkml]   [2010]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[19/45] KVM: SVM: Adjust tsc_offset only if tsc_unstable
    2.6.32-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Joerg Roedel <joerg.roedel@amd.com>

    commit 953899b659adce62cbe83d6a7527550ab8797c48 upstream.

    The tsc_offset adjustment in svm_vcpu_load is executed
    unconditionally even if Linux considers the host tsc as
    stable. This causes a Linux guest detecting an unstable tsc
    in any case.
    This patch removes the tsc_offset adjustment if the host tsc
    is stable. The guest will now get the benefit of a stable
    tsc too.

    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/x86/kvm/svm.c | 21 +++++++++++----------
    1 file changed, 11 insertions(+), 10 deletions(-)

    --- a/arch/x86/kvm/svm.c
    +++ b/arch/x86/kvm/svm.c
    @@ -795,17 +795,18 @@ static void svm_vcpu_load(struct kvm_vcp
    int i;

    if (unlikely(cpu != vcpu->cpu)) {
    - u64 tsc_this, delta;
    + u64 delta;

    - /*
    - * Make sure that the guest sees a monotonically
    - * increasing TSC.
    - */
    - rdtscll(tsc_this);
    - delta = vcpu->arch.host_tsc - tsc_this;
    - svm->vmcb->control.tsc_offset += delta;
    - if (is_nested(svm))
    - svm->nested.hsave->control.tsc_offset += delta;
    + if (check_tsc_unstable()) {
    + /*
    + * Make sure that the guest sees a monotonically
    + * increasing TSC.
    + */
    + delta = vcpu->arch.host_tsc - native_read_tsc();
    + svm->vmcb->control.tsc_offset += delta;
    + if (is_nested(svm))
    + svm->nested.hsave->control.tsc_offset += delta;
    + }
    vcpu->cpu = cpu;
    kvm_migrate_timers(vcpu);
    svm->asid_generation = 0;



    \
     
     \ /
      Last update: 2010-11-19 22:53    [W:0.020 / U:155.932 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site