3f55414718
- Upstream or pending upstream patches from Jan 25587-fix-off-by-one-parsing-error.patch 25616-x86-MCi_CTL-default.patch 25617-vtd-qinval-addr.patch 25688-x86-nr_irqs_gsi.patch - bnc#773393 - VUL-0: CVE-2012-3433: xen: HVM guest destroy p2m teardown host DoS vulnerability CVE-2012-3433-xsa11.patch - bnc#773401 - VUL-1: CVE-2012-3432: xen: HVM guest user mode MMIO emulation DoS 25682-x86-inconsistent-io-state.patch - bnc#762484 - VUL-1: CVE-2012-2625: xen: pv bootloader doesn't check the size of the bzip2 or lzma compressed kernel, leading to denial of service 25589-pygrub-size-limits.patch - Make it build with latest TeXLive 2012 with new package layout OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=196
49 lines
1.7 KiB
Diff
49 lines
1.7 KiB
Diff
# HG changeset patch
|
|
# User Andreas Herrmann <andreas.herrmann3@amd.com>
|
|
# Date 1338452142 -7200
|
|
# Node ID d7ae665b03afb88a813c6f197612215697eaf8f6
|
|
# Parent a120d24f90fb5e94244331e530aacf5b0ea86f25
|
|
x86/amd: re-enable CPU topology extensions in case BIOS has disabled it
|
|
|
|
BIOS will switch off the corresponding feature flag on family
|
|
15h models 10h-1fh non-desktop CPUs.
|
|
|
|
The topology extension CPUID leafs are required to detect which
|
|
cores belong to the same compute unit. (thread siblings mask is
|
|
set accordingly and also correct information about L1i and L2
|
|
cache sharing depends on this).
|
|
|
|
W/o this patch we wouldn't see which cores belong to the same
|
|
compute unit and also cache sharing information for L1i and L2
|
|
would be incorrect on such systems.
|
|
|
|
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
|
|
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
|
Acked-by: Keir Fraser <keir@xen.org>
|
|
Committed-by: Jan Beulich <jbeulich@suse.com>
|
|
|
|
--- a/xen/arch/x86/cpu/amd.c
|
|
+++ b/xen/arch/x86/cpu/amd.c
|
|
@@ -612,6 +612,21 @@ static void __devinit init_amd(struct cp
|
|
}
|
|
}
|
|
|
|
+ /* re-enable TopologyExtensions if switched off by BIOS */
|
|
+ if ((c->x86 == 0x15) &&
|
|
+ (c->x86_model >= 0x10) && (c->x86_model <= 0x1f) &&
|
|
+ !cpu_has(c, X86_FEATURE_TOPOEXT) &&
|
|
+ !rdmsr_safe(MSR_K8_EXT_FEATURE_MASK, value)) {
|
|
+ value |= 1ULL << 54;
|
|
+ wrmsr_safe(MSR_K8_EXT_FEATURE_MASK, value);
|
|
+ rdmsrl(MSR_K8_EXT_FEATURE_MASK, value);
|
|
+ if (value & (1ULL << 54)) {
|
|
+ set_bit(X86_FEATURE_TOPOEXT, c->x86_capability);
|
|
+ printk(KERN_INFO "CPU: Re-enabling disabled "
|
|
+ "Topology Extensions Support\n");
|
|
+ }
|
|
+ }
|
|
+
|
|
amd_get_topology(c);
|
|
|
|
/* Pointless to use MWAIT on Family10 as it does not deep sleep. */
|