mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 09:16:41 +07:00
KVM: ia64: Remove lock held by halted vcpu
Remove the lock protection for kvm halt logic, otherwise, once other vcpus want to acquire the lock, and they have to wait all vcpus are waken up from halt. Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
a917f7af39
commit
853dafb62b
@ -439,7 +439,6 @@ int kvm_emulate_halt(struct kvm_vcpu *vcpu)
|
|||||||
expires = div64_u64(itc_diff, cyc_per_usec);
|
expires = div64_u64(itc_diff, cyc_per_usec);
|
||||||
kt = ktime_set(0, 1000 * expires);
|
kt = ktime_set(0, 1000 * expires);
|
||||||
|
|
||||||
down_read(&vcpu->kvm->slots_lock);
|
|
||||||
vcpu->arch.ht_active = 1;
|
vcpu->arch.ht_active = 1;
|
||||||
hrtimer_start(p_ht, kt, HRTIMER_MODE_ABS);
|
hrtimer_start(p_ht, kt, HRTIMER_MODE_ABS);
|
||||||
|
|
||||||
@ -452,7 +451,6 @@ int kvm_emulate_halt(struct kvm_vcpu *vcpu)
|
|||||||
if (vcpu->arch.mp_state == KVM_MP_STATE_HALTED)
|
if (vcpu->arch.mp_state == KVM_MP_STATE_HALTED)
|
||||||
vcpu->arch.mp_state =
|
vcpu->arch.mp_state =
|
||||||
KVM_MP_STATE_RUNNABLE;
|
KVM_MP_STATE_RUNNABLE;
|
||||||
up_read(&vcpu->kvm->slots_lock);
|
|
||||||
|
|
||||||
if (vcpu->arch.mp_state != KVM_MP_STATE_RUNNABLE)
|
if (vcpu->arch.mp_state != KVM_MP_STATE_RUNNABLE)
|
||||||
return -EINTR;
|
return -EINTR;
|
||||||
|
Loading…
Reference in New Issue
Block a user