From 72644ac2b24ea3d6459cdcaab61af92c8795fa96 Mon Sep 17 00:00:00 2001 From: Shuo A Liu Date: Mon, 2 Dec 2019 19:32:30 +0800 Subject: [PATCH] hv: do not sleep a non-RUNNING vcpu It's meaningless to sleep a non-running vcpu. Add a state check before sleep the thread object of the vcpu. Tracked-On: #4178 Signed-off-by: Shuo A Liu Acked-by: Eddie Dong --- hypervisor/arch/x86/guest/vcpu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hypervisor/arch/x86/guest/vcpu.c b/hypervisor/arch/x86/guest/vcpu.c index 3aaf1c387..1f61a80e7 100644 --- a/hypervisor/arch/x86/guest/vcpu.c +++ b/hypervisor/arch/x86/guest/vcpu.c @@ -702,7 +702,9 @@ void pause_vcpu(struct acrn_vcpu *vcpu, enum vcpu_state new_state) vcpu->prev_state = vcpu->state; vcpu->state = new_state; - sleep_thread(&vcpu->thread_obj); + if (vcpu->prev_state == VCPU_RUNNING) { + sleep_thread(&vcpu->thread_obj); + } if (pcpu_id != get_pcpu_id()) { while (vcpu->running) { asm_pause();