[PATCH v3 00/11] x86: xen cpuid() cleanup

From: Juergen Gross
Date: Tue Apr 18 2017 - 02:31:57 EST


Reduce special casing of xen_cpuid() by using cpu capabilities instead
of faked cpuid nodes.

This cleanup enables us remove the hypervisor specific set_cpu_features
callback as the same effect can be reached via
setup_[clear|force]_cpu_cap().

Removing the rest faked nodes from xen_cpuid() requires some more work
as the remaining cases (mwait leafs and extended topology info) have
to be handled at the consumer sides of this information.

Changes in V3:
- rewrite patch 9 (xsave) to use xgetbv instruction to test for osxsave
availability (Andrew Cooper)

Changes in V2:
- added several features to this scheme
- removed hypervisor specific set_cpu_features() callbacks

Cc: Alok Kataria <akataria@xxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: x86@xxxxxxxxxx
Cc: virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx

Juergen Gross (11):
xen: set cpu capabilities from xen_start_kernel()
x86/xen: don't indicate DCA support in pv domains
x86/xen: use capabilities instead of fake cpuid values for aperf
x86/xen: use capabilities instead of fake cpuid values for mtrr
x86/xen: use capabilities instead of fake cpuid values for acc
x86/xen: use capabilities instead of fake cpuid values for acpi
x86/xen: use capabilities instead of fake cpuid values for mwait
x86/xen: use capabilities instead of fake cpuid values for x2apic
x86/xen: use capabilities instead of fake cpuid values for xsave
vmware: set cpu capabilities during platform initialization
x86/cpu: remove hypervisor specific set_cpu_features

arch/x86/include/asm/hypervisor.h | 5 ---
arch/x86/kernel/cpu/common.c | 1 -
arch/x86/kernel/cpu/hypervisor.c | 8 ----
arch/x86/kernel/cpu/vmware.c | 39 ++++++++--------
arch/x86/xen/enlighten_pv.c | 95 +++++++++++++++++----------------------
5 files changed, 61 insertions(+), 87 deletions(-)

--
2.12.0