acrn-hypervisor/hypervisor/arch/x86
Mingqiang Chi bb0327e700 hv: remove UUID
With current arch design the UUID is used to identify ACRN VMs,
all VM configurations must be deployed with given UUIDs at build time.
For post-launched VMs, end user must use UUID as acrn-dm parameter
to launch specified user VM. This is not friendly for end users
that they have to look up the pre-configured UUID before launching VM,
and then can only launch the VM which its UUID in the pre-configured UUID
list,otherwise the launch will fail.Another side, VM name is much straight
forward for end user to identify VMs, whereas the VM name defined
in launch script has not been passed to hypervisor VM configuration
so it is not consistent with the VM name when user list VM
in hypervisor shell, this would confuse user a lot.

This patch will resolve these issues by removing UUID as VM identifier
and use VM name instead:
1. Hypervisor will check the VM name duplication during VM creation time
   to make sure the VM name is unique.
2. If the VM name passed from acrn-dm matches one of pre-configured
   VM configurations, the corresponding VM will be launched,
   we call it static configured VM.
   If there is no matching found, hypervisor will try to allocate one
   unused VM configuration slot for this VM with given VM name and get it
   run if VM number does not reach CONFIG_MAX_VM_NUM,
   we will call it dynamic configured VM.
3. For dynamic configured VMs, we need a guest flag to identify them
   because the VM configuration need to be destroyed
   when it is shutdown or creation failed.

v7->v8:
    -- rename is_static_vm_configured to is_static_configured_vm
    -- only set DM owned guest_flags in hcall_create_vm
    -- add check dynamic flag in get_unused_vmid

v6->v7:
    -- refine get_vmid_by_name, return the first matching vm_id
    -- the GUEST_FLAG_STATIC_VM is added to identify the static or
       dynamic VM, the offline tool will set this flag for
       all the pre-defined VMs.
    -- only clear name field for dynamic VM instead of clear entire
       vm_config

Tracked-On: #6685
Signed-off-by: Mingqiang Chi <mingqiang.chi@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Reviewed-by: Victor Sun<victor.sun@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2021-11-16 14:42:59 +08:00
..
boot HV: modularization: rename multiboot.h to boot.h 2021-06-11 10:06:02 +08:00
configs hv: remove UUID 2021-11-16 14:42:59 +08:00
guest hv: remove UUID 2021-11-16 14:42:59 +08:00
lib HV: rewrite memcpy_s to be iso c11 compliant 2020-06-08 13:30:04 +08:00
seed ACRN: hv: Terminology modification in hv code 2021-11-02 10:00:55 +08:00
cpu_caps.c HV: treewide: fix violations of coding guideline C-TY-12 2021-11-04 18:15:47 +08:00
cpu_state_tbl.c HV: treewide: fix violations of coding guideline C-TY-12 2021-11-04 18:15:47 +08:00
cpu.c hv: vCAT: initialize the emulated_guest_msrs array for CAT msrs during platform initialization 2021-10-26 11:48:27 +08:00
e820.c hv : encapsulate page align in e820_alloc_memory 2021-11-12 11:56:03 +08:00
exception.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
gdt.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
idt.S hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
init.c HV: modularization: add boot.c to wrap multiboot module 2021-06-11 10:06:02 +08:00
ioapic.c hv: paging: rename ppt_set/clear_ATTR to set_paging_ATTR 2021-05-14 09:18:00 +08:00
irq.c HV: treewide: fix violations of coding guideline C-TY-27 & C-TY-28 2021-11-04 18:15:47 +08:00
lapic.c hv/mod_timer: separate delay functions from the timer module 2021-05-18 16:43:28 +08:00
mmu.c HV: treewide: fix violations of coding guideline C-TY-27 & C-TY-28 2021-11-04 18:15:47 +08:00
nmi.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
notify.c ACRN: hv: Terminology modification in hv code 2021-11-02 10:00:55 +08:00
page.c HV: treewide: fix violations of coding guideline C-EP-05 2021-11-04 18:15:47 +08:00
pagetable.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
platform_caps.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
pm.c hv: dm: Use new power management data structures 2021-07-15 11:53:54 +08:00
rdt.c hv: vCAT: initialize vCAT MSRs during vmcs init 2021-10-28 19:12:29 +08:00
rtcm.c hv: update RTCT ACPI table detecting 2021-06-01 08:22:20 +08:00
sched.S hv: sched: rename schedule related structs and vars 2019-10-16 10:25:53 +08:00
security.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
sgx.c hv: mod: do not use explicit arch name when including headers 2021-05-08 11:15:46 +08:00
trampoline.c hv: remove CONFIG_LOW_RAM_SIZE 2021-11-12 11:56:03 +08:00
tsc_deadline_timer.c HV: arch: fix a violation of coding guideline C-TY-24 2021-11-04 18:15:47 +08:00
tsc.c hv/mod_timer: split tsc handling code from timer. 2021-05-18 16:43:28 +08:00
vmx.c hv: VMPTRLD and VMCLEAR VMCS with the common APIs 2021-05-26 11:22:26 +08:00
vtd.c hv: align the MAX_IR_ENTRIES to MAX_PT_IRQ_ENTRIES 2021-11-15 09:00:27 +08:00
wakeup.S hv: pm: correct the function name 2019-09-11 17:30:24 +08:00