mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-05 02:40:37 +00:00
Change Service VM to supervisor role
1. Enable Service VM to power off or restart the whole platform even when RTVM is running. 2. Allow Service VM stop the RTVM using acrnctl tool with option "stop -f". 3. Add 'Service VM supervisor role enabled' option in ACRN configurator Tracked-On: #8618 Signed-off-by: YuanXin-Intel <xin.yuan@intel.com> Reviewed-by: Junjie Mao <junjie.mao@intel.com> Reviewed-by: Jian Jun Chen <jian.jun.chen@intel.com>
This commit is contained in:
committed by
acrnsi-robot
parent
512c98fd79
commit
e4b1584577
@@ -830,8 +830,7 @@ vm_loop(struct vmctx *ctx)
|
||||
break;
|
||||
}
|
||||
|
||||
/* RTVM can't be reset */
|
||||
if ((VM_SUSPEND_SYSTEM_RESET == vm_get_suspend_mode()) && (!is_rtvm)) {
|
||||
if (VM_SUSPEND_SYSTEM_RESET == vm_get_suspend_mode()) {
|
||||
vm_system_reset(ctx);
|
||||
}
|
||||
|
||||
|
@@ -350,7 +350,7 @@ static void handle_stop(struct mngr_msg *msg, int client_fd, void *param)
|
||||
ack.msgid = msg->msgid;
|
||||
ack.timestamp = msg->timestamp;
|
||||
|
||||
if (msg->data.acrnd_stop.force && !is_rtvm) {
|
||||
if (msg->data.acrnd_stop.force) {
|
||||
pr_info("%s: setting VM state to %s\n", __func__, vm_state_to_str(VM_SUSPEND_POWEROFF));
|
||||
vm_set_suspend_mode(VM_SUSPEND_POWEROFF);
|
||||
ack.data.err = 0;
|
||||
|
@@ -1012,13 +1012,10 @@ passthru_deinit(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
|
||||
pciaccess_cleanup();
|
||||
free(ptdev);
|
||||
|
||||
if (!is_rtvm) {
|
||||
/* Let the HV to deassign the pt device for RTVM, In this case, the RTVM
|
||||
* could still be alive if DM died.
|
||||
*/
|
||||
vm_deassign_pcidev(ctx, &pcidev);
|
||||
}
|
||||
if (!is_rtvm && phys_bdf) {
|
||||
/*Let device model to deassign pt device for all VMs, including RTVM if the Service VM plays
|
||||
*supervisor role.*/
|
||||
vm_deassign_pcidev(ctx, &pcidev);
|
||||
if (phys_bdf) {
|
||||
memset(reset_path, 0, sizeof(reset_path));
|
||||
snprintf(reset_path, 40,
|
||||
"/sys/bus/pci/devices/0000:%02x:%02x.%x/reset",
|
||||
|
Reference in New Issue
Block a user