acrn-hypervisor/hypervisor/common
Shuo A Liu 53de3a727c hv: reset vcpu events in reset_vcpu
On UEFI UP2 board, APs might execute HLT before SOS kernel INIT them.
After SOS kernel take over and will re-init the APs directly. The flows
from HV perspective is like:
    HLT trap:
       wait_event(VCPU_EVENT_VIRTUAL_INTERRUPT) -> sleep_thread
    SOS kernel INIT, SIPI APs:
       pause_vcpu(ZOMBIE) -> sleep_thread
    -> reset_vcpu
    -> launch_vcpu -> wake_vcpu

However, the last wake_vcpu will fail because the cpu event
VCPU_EVENT_VIRTUAL_INTERRUPT had not got signaled.

This patch will reset all vcpu events in reset_vcpu. If the thread was
previously waiting for a event, its waiting status will be cleared and
launch_vcpu will wake it to running.

Tracked-On: #4402
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2020-02-23 16:27:57 +08:00
..
event.c hv: reset vcpu events in reset_vcpu 2020-02-23 16:27:57 +08:00
hv_main.c hv: HLT emulation in hypervisor 2020-01-07 11:23:32 +08:00
hypercall.c hv: rename the ACRN_DBG_XXX 2020-01-14 10:21:23 +08:00
ptdev.c hv: ptdev: move softirq_dev_entry_list from vm structure to per_cpu region 2019-09-16 09:36:52 +08:00
sched_iorr.c hv: sched_iorr: add some interfaces implementation of sched_iorr 2019-12-11 09:31:39 +08:00
sched_noop.c hv: sched: decouple scheduler from schedule framework 2019-10-25 13:00:21 +08:00
schedule.c hv: rename VECTOR_XXX and XXX_IRQ Macros 2020-01-14 10:21:23 +08:00
softirq.c softirq: move softirq from hv_main to interrupt context 2019-07-22 09:55:06 +08:00
trusty_hypercall.c hv: rename the ACRN_DBG_XXX 2020-01-14 10:21:23 +08:00
vm_load.c hv:refine 'uint64_t' string print format in comm moudle 2019-11-09 11:42:38 +08:00