mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-16 12:19:42 +00:00
Currently the vcpu_affinity[] array fixes the vCPU to pCPU mapping. While the new cpu_affinity_bitmap doesn't explicitly sepcify this mapping, instead, it implicitly assumes that vCPU0 maps to the pCPU with lowest pCPU ID, vCPU1 maps to the second lowest pCPU ID, and so on. This makes it possible for post-launched VM to run vCPUs on a subset of these pCPUs only, and not all of them. acrn-dm may launch post-launched VMs with the current approach: indicate VM UUID and hypervisor launches all VCPUs from the PCPUs that are masked in cpu_affinity_bitmap. Also acrn-dm can choose to launch the VM on a subset of PCPUs that is defined in cpu_affinity_bitmap. In this way, acrn-dm must specify the subset of PCPUs in the CREATE_VM hypercall. Additionally, with this change, a guest's vcpu_num can be easily calculated from cpu_affinity_bitmap, so don't assign vcpu_num in vm_configuration.c. Tracked-On: #4616 Signed-off-by: Zide Chen <zide.chen@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
/*
|
|
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef VM_CONFIGURATIONS_H
|
|
#define VM_CONFIGURATIONS_H
|
|
|
|
#include <misc_cfg.h>
|
|
|
|
/* Bits mask of guest flags that can be programmed by device model. Other bits are set by hypervisor only */
|
|
#define DM_OWNED_GUEST_FLAG_MASK (GUEST_FLAG_SECURE_WORLD_ENABLED | GUEST_FLAG_LAPIC_PASSTHROUGH | \
|
|
GUEST_FLAG_RT | GUEST_FLAG_IO_COMPLETION_POLLING)
|
|
|
|
/* SOS_VM_NUM can only be 0U or 1U;
|
|
* When SOS_VM_NUM is 0U, MAX_POST_VM_NUM must be 0U too;
|
|
* MAX_POST_VM_NUM must be bigger than CONFIG_MAX_KATA_VM_NUM;
|
|
*/
|
|
#define PRE_VM_NUM 1U
|
|
#define SOS_VM_NUM 1U
|
|
#define MAX_POST_VM_NUM 1U
|
|
#define CONFIG_MAX_KATA_VM_NUM 0U
|
|
|
|
#define VM0_CONFIG_CPU_AFFINITY (AFFINITY_CPU(3U))
|
|
#define VM0_CONFIG_MEM_START_HPA 0x100000000UL
|
|
#define VM0_CONFIG_MEM_SIZE 0x20000000UL
|
|
|
|
#define SOS_VM_BOOTARGS SOS_ROOTFS \
|
|
"rw rootwait " \
|
|
"console=tty0 " \
|
|
SOS_CONSOLE \
|
|
"consoleblank=0 " \
|
|
"no_timer_check " \
|
|
"quiet loglevel=3 " \
|
|
"i915.nuclear_pageflip=1 " \
|
|
"i915.avail_planes_per_pipe=0x010700 " \
|
|
"i915.domain_plane_owners=0x011100001111 " \
|
|
"i915.enable_gvt=1 " \
|
|
SOS_IDLE \
|
|
SOS_BOOTARGS_DIFF
|
|
|
|
#define VM2_CONFIG_CPU_AFFINITY (AFFINITY_CPU(2U))
|
|
#endif /* VM_CONFIGURATIONS_H */
|