From a8328f5222699d0fa86d2fbd091d6a1e36a83461 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Sun, 5 Sep 2021 20:48:26 +0200 Subject: [PATCH] libxl: capabilities: assume Xen version >= 4.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the code handling old Xen's hwcap words, as well as the comment describing it. Signed-off-by: Ján Tomko Reviewed-by: Jim Fehlig --- src/libxl/libxl_capabilities.c | 54 +++++++++++++--------------------- 1 file changed, 20 insertions(+), 34 deletions(-) diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c index b4bd1d7e62..1953d7a87a 100644 --- a/src/libxl/libxl_capabilities.c +++ b/src/libxl/libxl_capabilities.c @@ -90,41 +90,33 @@ libxlCapsAddCPUID(virCPUData *data, virCPUx86CPUID *cpuid, ssize_t ncaps) * across all supported versions of the libxl driver until libxl exposes a * stable representation of these capabilities. Fortunately not a lot of * variation happened so it's still trivial to keep track of these leafs - * to describe host CPU in libvirt capabilities. v0 stands for Xen 4.4 - * up to 4.6, while v1 is meant for Xen 4.7, as depicted in the table below: + * to describe host CPU in libvirt capabilities. * - * | v0 (Xen 4.4 - 4.6) | v1 (Xen >= 4.7) | - * --------------------------------------------- - * word 0 | CPUID.00000001.EDX | CPUID.00000001.EDX | - * word 1 | CPUID.80000001.EDX | CPUID.00000001.ECX | - * word 2 | CPUID.80860001 | CPUID.80000001.EDX | - * word 3 | - Linux - | CPUID.80000001.ECX | - * word 4 | CPUID.00000001.ECX | CPUID.0000000D:1.EAX | - * word 5 | CPUID.C0000001 | CPUID.00000007:0.EBX | - * word 6 | CPUID.80000001.ECX | CPUID.00000007:0.ECX | - * word 7 | CPUID.00000007.EBX | CPUID.80000007.EDX | - * word 8 | - Non existent - | CPUID.80000008.EBX | + * | Xen >= 4.7 | + * ------------------------ + * word 0 | CPUID.00000001.EDX | + * word 1 | CPUID.00000001.ECX | + * word 2 | CPUID.80000001.EDX | + * word 3 | CPUID.80000001.ECX | + * word 4 | CPUID.0000000D:1.EAX | + * word 5 | CPUID.00000007:0.EBX | + * word 6 | CPUID.00000007:0.ECX | + * word 7 | CPUID.80000007.EDX | + * word 8 | CPUID.80000008.EBX | * */ static virCPUData * libxlCapsNodeData(virCPUDef *cpu, libxl_hwcap hwcap, - enum libxlHwcapVersion version) + enum libxlHwcapVersion version G_GNUC_UNUSED) { ssize_t ncaps; virCPUData *cpudata = NULL; virCPUx86CPUID cpuid[] = { - { .eax_in = 0x00000001, - .edx = hwcap[0] }, - { .eax_in = 0x00000001, - .ecx = (version > LIBXL_HWCAP_V0 ? hwcap[1] : hwcap[4]) }, - { .eax_in = 0x80000001, - .edx = (version > LIBXL_HWCAP_V0 ? hwcap[2] : hwcap[1]) }, - { .eax_in = 0x80000001, - .ecx = (version > LIBXL_HWCAP_V0 ? hwcap[3] : hwcap[6]) }, - { .eax_in = 0x00000007, - .ebx = (version > LIBXL_HWCAP_V0 ? hwcap[5] : hwcap[7]) }, - }; - virCPUx86CPUID cpuid_ver1[] = { + { .eax_in = 0x00000001, .edx = hwcap[0] }, + { .eax_in = 0x00000001, .ecx = hwcap[1] }, + { .eax_in = 0x80000001, .edx = hwcap[2] }, + { .eax_in = 0x80000001, .ecx = hwcap[3] }, + { .eax_in = 0x00000007, .ebx = hwcap[5] }, { .eax_in = 0x0000000D, .ecx_in = 1U, .eax = hwcap[4] }, { .eax_in = 0x00000007, .ecx_in = 0U, .ecx = hwcap[6] }, { .eax_in = 0x80000007, .ecx_in = 0U, .edx = hwcap[7] }, @@ -137,11 +129,6 @@ libxlCapsNodeData(virCPUDef *cpu, libxl_hwcap hwcap, if (libxlCapsAddCPUID(cpudata, cpuid, ncaps) < 0) goto error; - ncaps = G_N_ELEMENTS(cpuid_ver1); - if (version > LIBXL_HWCAP_V0 && - libxlCapsAddCPUID(cpudata, cpuid_ver1, ncaps) < 0) - goto error; - return cpudata; error: @@ -156,7 +143,7 @@ libxlCapsNodeData(virCPUDef *cpu, libxl_hwcap hwcap, */ static int libxlCapsInitCPU(virCaps *caps, libxl_physinfo *phy_info, - enum libxlHwcapVersion version) + enum libxlHwcapVersion version G_GNUC_UNUSED) { virCPUData *data = NULL; virCPUDef *cpu = NULL; @@ -175,8 +162,7 @@ libxlCapsInitCPU(virCaps *caps, libxl_physinfo *phy_info, virCapabilitiesAddHostFeature(caps, "pae") < 0) goto error; - host_lm = (phy_info->hw_cap[version > LIBXL_HWCAP_V0 ? 2 : 1] - & LIBXL_X86_FEATURE_LM_MASK); + host_lm = (phy_info->hw_cap[2] & LIBXL_X86_FEATURE_LM_MASK); if (host_lm) cpu->arch = VIR_ARCH_X86_64; else