]> git.baikalelectronics.ru Git - kernel.git/commitdiff
KVM: PPC: Book3S HV: Fix vcore_blocked tracepoint
authorFabiano Rosas <farosas@linux.ibm.com>
Mon, 28 Mar 2022 21:58:31 +0000 (18:58 -0300)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 18 May 2022 14:44:50 +0000 (00:44 +1000)
We removed most of the vcore logic from the P9 path but there's still
a tracepoint that tried to dereference vc->runner.

Fixes: db4e28aadb40 ("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
arch/powerpc/kvm/book3s_hv.c
arch/powerpc/kvm/trace_hv.h

index af3d204678b1a0f733e228e1fad8e3bbbcac92ca..7f8cf1912f7f60da6cb83965994e72971706c535 100644 (file)
@@ -4269,13 +4269,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();
@@ -4660,9 +4660,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);
        }
index 38cd0ed0a6178a5a071d4df376c3697b53433c03..32e2cb5811cc8cd0a977e55ad4ddec31a63c7e2a 100644 (file)
@@ -409,9 +409,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)
@@ -421,8 +421,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;
        ),