From f3e8d4e019f7ad40cdcdc8d58020b46d52ad1a9b Mon Sep 17 00:00:00 2001 From: Yonghua Huang Date: Tue, 2 Nov 2021 08:56:29 +0300 Subject: [PATCH] dm: refine logic to build ACPI table of Post-launched VM - GET_PLATFORM_INFO will not be supported in ACRN. - This patch removes the dependency on this interface to build virtual ACPI table of post-launched VM: Instead of calling 'vm_get_config()' to get local APIC IDs, virtual ACPI builder calls new wrapper API 'lapcid_from_pcpuid()'. Tracked-On: #6724 Signed-off-by: Yonghua Huang Acked-by: Wang, Yu1 --- devicemodel/hw/platform/acpi/acpi.c | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/devicemodel/hw/platform/acpi/acpi.c b/devicemodel/hw/platform/acpi/acpi.c index cca44e931..12d28032b 100644 --- a/devicemodel/hw/platform/acpi/acpi.c +++ b/devicemodel/hw/platform/acpi/acpi.c @@ -276,30 +276,15 @@ static int basl_fwrite_madt(FILE *fp, struct vmctx *ctx) { int i; - struct acrn_vm_config_header vm_cfg; - struct acrn_platform_info plat_info; - uint64_t dm_cpu_bitmask, hv_cpu_bitmask, guest_pcpu_bitmask; - - if (vm_get_config(ctx, &vm_cfg, &plat_info)) { - pr_err("%s, get VM configuration fail.\n", __func__); - return -1; - } - - hv_cpu_bitmask = vm_cfg.cpu_affinity; - dm_cpu_bitmask = vm_get_cpu_affinity_dm(); - if ((dm_cpu_bitmask != 0) && ((dm_cpu_bitmask & ~hv_cpu_bitmask) == 0)) { - guest_pcpu_bitmask = dm_cpu_bitmask; - } else { - guest_pcpu_bitmask = hv_cpu_bitmask; - } + uint64_t guest_pcpu_bitmask; + guest_pcpu_bitmask = vm_get_cpu_affinity_dm(); if (guest_pcpu_bitmask == 0) { pr_err("%s,Err: Invalid guest_pcpu_bitmask.\n", __func__); return -1; } - pr_info("%s, dm_cpu_bitmask:0x%x, hv_cpu_bitmask:0x%x, guest_cpu_bitmask: 0x%x\n", - __func__, dm_cpu_bitmask, hv_cpu_bitmask, guest_pcpu_bitmask); + pr_info("%s, guest_cpu_bitmask: 0x%x\n", __func__, guest_pcpu_bitmask); EFPRINTF(fp, "/*\n"); EFPRINTF(fp, " * dm MADT template\n");