Commit ad55bae7 authored by Fabiano Rosas's avatar Fabiano Rosas Committed by Michael Ellerman

KVM: PPC: Book3S HV: Fix vcore_blocked tracepoint

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

Fixes: ecb6a720 ("KVM: PPC: Book3S HV P9: Remove most of the vcore logic")
Signed-off-by: default avatarFabiano Rosas <farosas@linux.ibm.com>
Reviewed-by: default avatarNicholas Piggin <npiggin@gmail.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220328215831.320409-1-farosas@linux.ibm.com
parent b22af904
...@@ -4269,13 +4269,13 @@ static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc) ...@@ -4269,13 +4269,13 @@ static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc)
start_wait = ktime_get(); start_wait = ktime_get();
vc->vcore_state = VCORE_SLEEPING; vc->vcore_state = VCORE_SLEEPING;
trace_kvmppc_vcore_blocked(vc, 0); trace_kvmppc_vcore_blocked(vc->runner, 0);
spin_unlock(&vc->lock); spin_unlock(&vc->lock);
schedule(); schedule();
finish_rcuwait(&vc->wait); finish_rcuwait(&vc->wait);
spin_lock(&vc->lock); spin_lock(&vc->lock);
vc->vcore_state = VCORE_INACTIVE; vc->vcore_state = VCORE_INACTIVE;
trace_kvmppc_vcore_blocked(vc, 1); trace_kvmppc_vcore_blocked(vc->runner, 1);
++vc->runner->stat.halt_successful_wait; ++vc->runner->stat.halt_successful_wait;
cur = ktime_get(); cur = ktime_get();
...@@ -4660,9 +4660,9 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 time_limit, ...@@ -4660,9 +4660,9 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 time_limit,
if (kvmppc_vcpu_check_block(vcpu)) if (kvmppc_vcpu_check_block(vcpu))
break; break;
trace_kvmppc_vcore_blocked(vc, 0); trace_kvmppc_vcore_blocked(vcpu, 0);
schedule(); schedule();
trace_kvmppc_vcore_blocked(vc, 1); trace_kvmppc_vcore_blocked(vcpu, 1);
} }
finish_rcuwait(wait); finish_rcuwait(wait);
} }
......
...@@ -409,9 +409,9 @@ TRACE_EVENT(kvmppc_run_core, ...@@ -409,9 +409,9 @@ TRACE_EVENT(kvmppc_run_core,
); );
TRACE_EVENT(kvmppc_vcore_blocked, 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( TP_STRUCT__entry(
__field(int, n_runnable) __field(int, n_runnable)
...@@ -421,8 +421,8 @@ TRACE_EVENT(kvmppc_vcore_blocked, ...@@ -421,8 +421,8 @@ TRACE_EVENT(kvmppc_vcore_blocked,
), ),
TP_fast_assign( TP_fast_assign(
__entry->runner_vcpu = vc->runner->vcpu_id; __entry->runner_vcpu = vcpu->vcpu_id;
__entry->n_runnable = vc->n_runnable; __entry->n_runnable = vcpu->arch.vcore->n_runnable;
__entry->where = where; __entry->where = where;
__entry->tgid = current->tgid; __entry->tgid = current->tgid;
), ),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment