lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 539/772] KVM: PPC: Book3S HV: Fix vcore_blocked tracepoint
    Date
    From: Fabiano Rosas <farosas@linux.ibm.com>

    [ Upstream commit ad55bae7dc364417434b69dd6c30104f20d0f84d ]

    We removed most of the vcore logic from the P9 path but there's still
    a tracepoint that tried to dereference vc->runner.

    Fixes: ecb6a7207f92 ("KVM: PPC: Book3S HV P9: Remove most of the vcore logic")
    Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
    Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220328215831.320409-1-farosas@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/powerpc/kvm/book3s_hv.c | 8 ++++----
    arch/powerpc/kvm/trace_hv.h | 8 ++++----
    2 files changed, 8 insertions(+), 8 deletions(-)

    diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
    index 0da8c0df768d..85a3b756e0b0 100644
    --- a/arch/powerpc/kvm/book3s_hv.c
    +++ b/arch/powerpc/kvm/book3s_hv.c
    @@ -4238,13 +4238,13 @@ static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc)
    start_wait = ktime_get();

    vc->vcore_state = VCORE_SLEEPING;
    - trace_kvmppc_vcore_blocked(vc, 0);
    + trace_kvmppc_vcore_blocked(vc->runner, 0);
    spin_unlock(&vc->lock);
    schedule();
    finish_rcuwait(&vc->wait);
    spin_lock(&vc->lock);
    vc->vcore_state = VCORE_INACTIVE;
    - trace_kvmppc_vcore_blocked(vc, 1);
    + trace_kvmppc_vcore_blocked(vc->runner, 1);
    ++vc->runner->stat.halt_successful_wait;

    cur = ktime_get();
    @@ -4624,9 +4624,9 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 time_limit,
    if (kvmppc_vcpu_check_block(vcpu))
    break;

    - trace_kvmppc_vcore_blocked(vc, 0);
    + trace_kvmppc_vcore_blocked(vcpu, 0);
    schedule();
    - trace_kvmppc_vcore_blocked(vc, 1);
    + trace_kvmppc_vcore_blocked(vcpu, 1);
    }
    finish_rcuwait(wait);
    }
    diff --git a/arch/powerpc/kvm/trace_hv.h b/arch/powerpc/kvm/trace_hv.h
    index 830a126e095d..9c56da21a075 100644
    --- a/arch/powerpc/kvm/trace_hv.h
    +++ b/arch/powerpc/kvm/trace_hv.h
    @@ -408,9 +408,9 @@ TRACE_EVENT(kvmppc_run_core,
    );

    TRACE_EVENT(kvmppc_vcore_blocked,
    - TP_PROTO(struct kvmppc_vcore *vc, int where),
    + TP_PROTO(struct kvm_vcpu *vcpu, int where),

    - TP_ARGS(vc, where),
    + TP_ARGS(vcpu, where),

    TP_STRUCT__entry(
    __field(int, n_runnable)
    @@ -420,8 +420,8 @@ TRACE_EVENT(kvmppc_vcore_blocked,
    ),

    TP_fast_assign(
    - __entry->runner_vcpu = vc->runner->vcpu_id;
    - __entry->n_runnable = vc->n_runnable;
    + __entry->runner_vcpu = vcpu->vcpu_id;
    + __entry->n_runnable = vcpu->arch.vcore->n_runnable;
    __entry->where = where;
    __entry->tgid = current->tgid;
    ),
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-07 23:37    [W:2.267 / U:0.140 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site