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: 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
This commit is contained in:
parent
b22af90419
commit
ad55bae7dc
@ -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,
|
|||||||
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,
|
|||||||
);
|
);
|
||||||
|
|
||||||
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,
|
|||||||
),
|
),
|
||||||
|
|
||||||
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;
|
||||||
),
|
),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user