hv: pm: support shutting down multiple VMs when pCPUs are shared

More than one VM may request shutdown on the same pCPU before
shutdown_vm_from_idle() is called in the idle thread when pCPUs are
shared among VMs.

Use a per-pCPU bitmap to store all the VMIDs requesting shutdown.

v1 -> v2:
- use vm_lock to avoid a race on shutdown

Tracked-On: #5411
Signed-off-by: Peter Fang <peter.fang@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Peter Fang
2020-10-22 02:25:27 -07:00
committed by wenlingz
parent 63fd853df3
commit 70b1218952
4 changed files with 38 additions and 19 deletions

View File

@@ -57,7 +57,7 @@ struct per_cpu_region {
#ifdef PROFILING_ON
struct profiling_info_wrapper profiling_info;
#endif
uint16_t shutdown_vm_id;
uint64_t shutdown_vm_bitmap;
uint64_t tsc_suspend;
/*
* We maintain a per-pCPU array of vCPUs. vCPUs of a VM won't