lkml.org 
[lkml]   [2017]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL for 3.18 11/40] KVM: x86: correct async page present tracepoint
    Date
    From: Wanpeng Li <wanpeng.li@hotmail.com>

    [ Upstream commit 24dccf83a121b8a4ad5c2ad383a8184ef6c266ee ]

    After async pf setup successfully, there is a broadcast wakeup w/ special
    token 0xffffffff which tells vCPU that it should wake up all processes
    waiting for APFs though there is no real process waiting at the moment.

    The async page present tracepoint print prematurely and fails to catch the
    special token setup. This patch fixes it by moving the async page present
    tracepoint after the special token setup.

    Before patch:

    qemu-system-x86-8499 [006] ...1 5973.473292: kvm_async_pf_ready: token 0x0 gva 0x0

    After patch:

    qemu-system-x86-8499 [006] ...1 5973.473292: kvm_async_pf_ready: token 0xffffffff gva 0x0

    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    ---
    arch/x86/kvm/x86.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
    index 26329e8c9855..c8105be39b00 100644
    --- a/arch/x86/kvm/x86.c
    +++ b/arch/x86/kvm/x86.c
    @@ -7783,11 +7783,11 @@ void kvm_arch_async_page_present(struct kvm_vcpu *vcpu,
    {
    struct x86_exception fault;

    - trace_kvm_async_pf_ready(work->arch.token, work->gva);
    if (work->wakeup_all)
    work->arch.token = ~0; /* broadcast wakeup */
    else
    kvm_del_async_pf_gfn(vcpu, work->arch.gfn);
    + trace_kvm_async_pf_ready(work->arch.token, work->gva);

    if ((vcpu->arch.apf.msr_val & KVM_ASYNC_PF_ENABLED) &&
    !apf_put_user(vcpu, KVM_PV_REASON_PAGE_READY)) {
    --
    2.11.0
    \
     
     \ /
      Last update: 2017-12-13 03:14    [W:4.317 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site