lkml.org 
[lkml]   [2009]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 19/26] KVM: SVM: Fix tsc offset adjustment when running nested
    2.6.31-stable review patch.  If anyone has any objections, please let us know.

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

    commit 77b1ab1732feb5e3dcbaf31d2f7547c5229f5f3a upstream.

    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>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/x86/kvm/svm.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/arch/x86/kvm/svm.c
    +++ b/arch/x86/kvm/svm.c
    @@ -709,6 +709,8 @@ static void svm_vcpu_load(struct kvm_vcp
    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;
    vcpu->cpu = cpu;
    kvm_migrate_timers(vcpu);
    svm->asid_generation = 0;



    \
     
     \ /
      Last update: 2009-10-10 01:45    [W:3.384 / U:0.240 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site