[linux] 01/01: [x86] smpboot: Fix CPU #1 boot timeout (Closes: #802464)

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Sat Oct 24 01:52:48 UTC 2015


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch master
in repository linux.

commit 53dc794e5f4b90c36263dde83c4fd5efa803561f
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Sat Oct 24 10:50:52 2015 +0900

    [x86] smpboot: Fix CPU #1 boot timeout (Closes: #802464)
---
 debian/changelog                                   |  3 ++
 .../x86/x86-smpboot-Fix-CPU-1-boot-timeout.patch   | 62 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 66 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 727e174..94fba94 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,9 @@ linux (4.3~rc6-1~exp1) UNRELEASED; urgency=medium
 
   * New upstream release candidate
 
+  [ Ben Hutchings ]
+  * [x86] smpboot: Fix CPU #1 boot timeout (Closes: #802464)
+
  -- Ben Hutchings <ben at decadent.org.uk>  Mon, 19 Oct 2015 02:21:23 +0100
 
 linux (4.3~rc5-1~exp1) experimental; urgency=medium
diff --git a/debian/patches/bugfix/x86/x86-smpboot-Fix-CPU-1-boot-timeout.patch b/debian/patches/bugfix/x86/x86-smpboot-Fix-CPU-1-boot-timeout.patch
new file mode 100644
index 0000000..410860e
--- /dev/null
+++ b/debian/patches/bugfix/x86/x86-smpboot-Fix-CPU-1-boot-timeout.patch
@@ -0,0 +1,62 @@
+From: Len Brown <len.brown at intel.com>
+Date: Fri, 16 Oct 2015 00:14:29 -0400
+Subject: x86/smpboot: Fix CPU #1 boot timeout
+Origin: https://git.kernel.org/linus/fcafddec4e78a7776db4b6685db6b2902d4300fc
+Bug-Debian: https://bugs.debian.org/802464
+
+The following commit:
+
+  a9bcaa02a5104ac ("x86/smpboot: Remove SIPI delays from cpu_up()")
+
+Caused some Intel Core2 processors to time-out when bringing up CPU #1,
+resulting in the missing of that CPU after bootup.
+
+That patch reduced the SIPI delays from udelay() 300, 200 to udelay() 0,
+0 on modern processors.
+
+Several Intel(R) Core(TM)2 systems failed to bring up CPU #1 10/10 times
+after that change.
+
+Increasing either of the SIPI delays to udelay(1) results in
+success. So here we increase both to udelay(10).  While this may
+be 20x slower than the absolute minimum, it is still 20x to 30x
+faster than the original code.
+
+Tested-by: Donald Parsons <dparsons at brightdsl.net>
+Tested-by: Shane <shrybman at teksavvy.com>
+Signed-off-by: Len Brown <len.brown at intel.com>
+Cc: Linus Torvalds <torvalds at linux-foundation.org>
+Cc: Peter Zijlstra <peterz at infradead.org>
+Cc: Thomas Gleixner <tglx at linutronix.de>
+Cc: dparsons at brightdsl.net
+Cc: shrybman at teksavvy.com
+Link: http://lkml.kernel.org/r/6dd554ee8945984d85aafb2ad35793174d068af0.1444968087.git.len.brown@intel.com
+Signed-off-by: Ingo Molnar <mingo at kernel.org>
+---
+ arch/x86/kernel/smpboot.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/arch/x86/kernel/smpboot.c
++++ b/arch/x86/kernel/smpboot.c
+@@ -657,7 +657,9 @@ wakeup_secondary_cpu_via_init(int phys_a
+ 		/*
+ 		 * Give the other CPU some time to accept the IPI.
+ 		 */
+-		if (init_udelay)
++		if (init_udelay == 0)
++			udelay(10);
++		else
+ 			udelay(300);
+ 
+ 		pr_debug("Startup point 1\n");
+@@ -668,7 +670,9 @@ wakeup_secondary_cpu_via_init(int phys_a
+ 		/*
+ 		 * Give the other CPU some time to accept the IPI.
+ 		 */
+-		if (init_udelay)
++		if (init_udelay == 0)
++			udelay(10);
++		else
+ 			udelay(200);
+ 
+ 		if (maxlvt > 3)		/* Due to the Pentium erratum 3AP.  */
diff --git a/debian/patches/series b/debian/patches/series
index c93dc19..dd81fa9 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -81,3 +81,4 @@ features/all/grsecurity/grkernsec_perf_harden.patch
 
 bugfix/all/media-uvcvideo-disable-hardware-timestamps-by-defaul.patch
 bugfix/all/ovl-conditionally-use-o_largefile-in-ovl_copy_up.patch
+bugfix/x86/x86-smpboot-Fix-CPU-1-boot-timeout.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list