lkml.org 
[lkml]   [2009]   [Oct]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: patch kvm-svm-fix-tsc-offset-adjustment-when-running-nested.patch added to 2.6.31-stable tree
    All the nested stuff was moved into its own sub-struct in 2.6.32. Here
    is a version that works with 2.6.31.3:

    From 4505a73070f341674e0d22a8c9ee51b2beeb843e Mon Sep 17 00:00:00 2001
    From: Joerg Roedel <joerg.roedel@amd.com>
    Date: Mon, 12 Oct 2009 11:19:07 +0200
    Subject: [PATCH 1/2] KVM: SVM: Fix tsc offset adjustment when running nested

    When svm_vcpu_load is called while the vcpu is running in
    guest mode the tsc adjustment made there is lost on the next
    emulated #vmexit. This causes the tsc running backwards in
    the guest. This patch fixes the issue by also adjusting the
    tsc_offset in the emulated hsave area so that it will not
    get lost.

    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    ---
    arch/x86/kvm/svm.c | 2 ++
    1 files changed, 2 insertions(+), 0 deletions(-)
    diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
    index b1f658a..aafd8bf 100644
    --- a/arch/x86/kvm/svm.c
    +++ b/arch/x86/kvm/svm.c
    @@ -709,6 +709,8 @@ static void svm_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
    rdtscll(tsc_this);
    delta = vcpu->arch.host_tsc - tsc_this;
    svm->vmcb->control.tsc_offset += delta;
    + if (is_nested(svm))
    + svm->hsave->control.tsc_offset += delta;
    vcpu->cpu = cpu;
    kvm_migrate_timers(vcpu);
    svm->asid_generation = 0;
    --
    1.6.4.3



    \
     
     \ /
      Last update: 2009-10-12 11:55    [from the cache]
    ©2003-2014 Jasper Spaans. hosted at Digital Ocean