hv: implement NEED_SHUTDOWN_VM request to idle thread

For pre-launched VMs and SOS, VM shutdown should not be executed in the
current VM context.

- implement NEED_SHUTDOWN_VM request so that the BSP of the target VM can shut
  down the guest in idle thread.
- implement shutdown_vm_from_idle() to shut down target VM.

Tracked-On: #2700
Signed-off-by: Zide Chen <zide.chen@intel.com>
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Zide Chen
2019-02-27 09:54:58 -08:00
committed by wenlingz
parent db952315c5
commit 8ad0fd98a3
7 changed files with 57 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
/*
* Copyright (C) 2019 Intel Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <vm.h>
#include <vm_reset.h>
#include <per_cpu.h>
void shutdown_vm_from_idle(uint16_t pcpu_id)
{
struct acrn_vm *vm = get_vm_from_vmid(per_cpu(shutdown_vm_id, pcpu_id));
const struct acrn_vcpu *vcpu = vcpu_from_vid(vm, BOOT_CPU_ID);
if (vcpu->pcpu_id == pcpu_id) {
(void)shutdown_vm(vm);
}
}