On 05/07/18 12:19, Juergen Gross wrote:
> On 04/07/18 20:16, Karl Johnson wrote:
>> Hello,
>>
>> I'm building dom0 kernel RPMs for the CentOS Xen project
>> (https://github.com/CentOS-virt7/xen-kernel) and it seems that the 4.9
>> branch isn't booting anymore as dom0. I recently built 4.9.110 and
>> 4.9.111, both give black screen and reboot while booting dom0. Our last
>> successful version is 4.9.105 therefore something must be wrong between
>> 4.9.106 and 4.9.110.
>>
>> I checked the OSSTEST for linux-4.9 and the last working flight was
>> 4.9.101. Is there a known issue with Xen and Linux 4.9?
> 
> I think I've found the reason. Testing a patch right now.

It worked. I have already sent it to stable. In case you want to try
it I'm attaching it for reference.


Juergen
>From cc2872574d060fb3d35fd28c81327ee887f540ef Mon Sep 17 00:00:00 2001
From: Juergen Gross <jgr...@suse.com>
Date: Thu, 5 Jul 2018 12:29:48 +0200
Subject: [PATCH-for-4.9-stable] x86/cpu: Re-apply forced caps every time CPU caps are re-read

Calling get_cpu_cap() will reset a bunch of CPU features.  This will
cause the system to lose track of force-set and force-cleared
features in the words that are reset until the end of CPU
initialization.  This can cause X86_FEATURE_FPU, for example, to
change back and forth during boot and potentially confuse CPU setup.

To minimize the chance of confusion, re-apply forced caps every time
get_cpu_cap() is called.

Signed-off-by: Andy Lutomirski <l...@kernel.org>
Reviewed-by: Borislav Petkov <b...@suse.de>
Cc: Borislav Petkov <b...@alien8.de>
Cc: Brian Gerst <brge...@gmail.com>
Cc: Dave Hansen <dave.han...@linux.intel.com>
Cc: Fenghua Yu <fenghua...@intel.com>
Cc: H. Peter Anvin <h...@zytor.com>
Cc: Linus Torvalds <torva...@linux-foundation.org>
Cc: Matthew Whitehead <tedheads...@gmail.com>
Cc: Oleg Nesterov <o...@redhat.com>
Cc: One Thousand Gnomes <gno...@lxorguk.ukuu.org.uk>
Cc: Peter Zijlstra <pet...@infradead.org>
Cc: Rik van Riel <r...@redhat.com>
Cc: Thomas Gleixner <t...@linutronix.de>
Cc: Yu-cheng Yu <yu-cheng...@intel.com>
Link: http://lkml.kernel.org/r/c817eb373d2c67c2c81413a70fc9b845fa34a37e.1484705016.git.l...@kernel.org
Signed-off-by: Ingo Molnar <mi...@kernel.org>
Signed-off-by: Juergen Gross <jgr...@suse.com>
---
upstream commit: 60d3450167433f2d099ce2869dc52dd9e7dc9b29
needed for Xen PV guests to boot, was broken since commit
c43b4ff972a986c85bdd8dc1aa05fe23b29ef99c
---
 arch/x86/kernel/cpu/common.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index b0fd028b2eee..7a4279d8a902 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -848,6 +848,13 @@ void get_cpu_cap(struct cpuinfo_x86 *c)
 
 	init_scattered_cpuid_features(c);
 	init_speculation_control(c);
+
+	/*
+	 * Clear/Set all flags overridden by options, after probe.
+	 * This needs to happen each time we re-probe, which may happen
+	 * several times during CPU initialization.
+	 */
+	apply_forced_caps(c);
 }
 
 static void identify_cpu_without_cpuid(struct cpuinfo_x86 *c)
-- 
2.13.7

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to