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: [Stable-review] [patch 00/26] 2.6.31.4-stable review
    On Mon, 12 Oct 2009 13:09:56 +0200 (CEST)
    Thomas Voegtle <tv@lio96.de> wrote:

    > arch/x86/kvm/svm.c: In function 'svm_vcpu_load':
    > arch/x86/kvm/svm.c:713: error: 'struct vcpu_svm' has no member named
    > 'nested'

    Replacement patch for:
    kvm-svm-fix-tsc-offset-adjustment-when-running-nested.patch

    Fixes:
    arch/x86/kvm/svm.c: In function 'svm_vcpu_load':
    arch/x86/kvm/svm.c:713: error: 'struct vcpu_svm' has no member named 'nested'


    From 77b1ab1732feb5e3dcbaf31d2f7547c5229f5f3a Mon Sep 17 00:00:00 2001
    From: Joerg Roedel <joerg.roedel@amd.com>
    Date: Wed, 16 Sep 2009 15:24:17 +0200
    Subject: KVM: SVM: Fix tsc offset adjustment when running nested

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

    commit 77b1ab1732feb5e3dcbaf31d2f7547c5229f5f3a upstream.
    [ backport to 2.6.31 by Chuck Ebbert <cebbert@redhat.com> ]

    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->hsave->control.tsc_offset += delta;
    vcpu->cpu = cpu;
    kvm_migrate_timers(vcpu);
    svm->asid_generation = 0;

    \
     
     \ /
      Last update: 2009-10-12 14:43    [W:0.023 / U:120.996 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site