[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 0/5] Fix HVM domain featuresets when BIOS sets max_leaf limit
This patch series fixes an observed regression between Xen 4.1 and Xen 4.4 on two particular IvyBridge DT systems, where windows 8.1 will work fine under Xen 4.1, but unconditionally BSOD under Xen 4.4 The problem turns out to be specific to the BIOS settings on these two boxes. When IA32_MISC_ENABLE[22] is set, the CPUID max leaf is limited to 3 for legacy compatibility reasons. Xen knows how to disable this limit and does so, but only after trying to fix the CPUID.7[ECX=0] feature flags, which are ignored base on a max_leaf test. This causes the cpu_has_XXX tests for these features to return false despite the feature actually being available. This regression was introduced as a side effect of c/s 44e24f8567 "x86: don't call generic_identify() redundantly" where the redundant call actually resampled CPUID.7[ECX=0] properly to obtain the feature flags. From Windows point of view, sees the FSGSBASE feature but gets a #GP fault when attempting to set it in CR4, as the Xen cpu_has_fsgsbase check fails. (Windows then appears to forget that it failed to enable FSGSBASE, and BSODs when it gets a further #GP fault the first time it uses the new instructions.) Patch 1 is a misc newline corruption I discovered during debugging of the issue, and is otherwise unrelated to the series. Patch 2 is the main bugfix. Patches 3 and 4 are improvements to hvmloader, as prerequisites to Patch 5 which introduces an hvmloader test for the WRFSBASE instruction. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CC: Keir Fraser <keir@xxxxxxx> CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Tim Deegan <tim@xxxxxxx> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> Andrew Cooper (5): x86/cpu: Newline on 'invalid siblings' warning x86/cpu: Undo BIOS CPUID max_leaf limit before querying for features. hvmloader/tests: use .code64 in 64bit snippets hvmloader: Introduce cpuid_count() helper function hvmloader/tests: Introduce WRFSBASE test tools/firmware/hvmloader/tests.c | 76 +++++++++++++++++++++++++++++++++++--- tools/firmware/hvmloader/util.c | 9 ----- tools/firmware/hvmloader/util.h | 17 +++++++-- xen/arch/x86/cpu/common.c | 9 +++-- 4 files changed, 91 insertions(+), 20 deletions(-) -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |