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

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
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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);
	}
+4 −4
Original line number Diff line number Diff line
@@ -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;
	),