[kernel] r12404 - in dists/etch/linux-2.6/debian: . patches/features/all/xen patches/series

Ian Campbell ijc-guest at alioth.debian.org
Fri Nov 21 15:25:00 UTC 2008


Author: ijc-guest
Date: Fri Nov 21 15:24:59 2008
New Revision: 12404

Log:
Add softlockup-no-idle-hz.patch to prevent softlockup in xen guest.
(closes: 506418)

Added:
   dists/etch/linux-2.6/debian/patches/features/all/xen/softlockup-no-idle-hz.patch
   dists/etch/linux-2.6/debian/patches/series/24-extra
Modified:
   dists/etch/linux-2.6/debian/changelog

Modified: dists/etch/linux-2.6/debian/changelog
==============================================================================
--- dists/etch/linux-2.6/debian/changelog	(original)
+++ dists/etch/linux-2.6/debian/changelog	Fri Nov 21 15:24:59 2008
@@ -1,10 +1,15 @@
 linux-2.6 (2.6.18.dfsg.1-24) UNRELEASED; urgency=low
 
+  [ dann frazier ]
   * cciss: Add support for new hardware (closes: #502553)
      - Add PCI ids for P700m, P212, P410, P410i, P411, P812
      - Read the FIFO size from the controller config instead of
        hardcoding it into the driver
 
+  [ Ian Campbell ]
+  * xen: Add softlockup-no-idle-hz.patch to prevent softlockup in xen guest.
+    (closes: 506418)
+
  -- dann frazier <dannf at debian.org>  Fri, 17 Oct 2008 14:54:31 -0600
 
 linux-2.6 (2.6.18.dfsg.1-23) stable; urgency=high

Added: dists/etch/linux-2.6/debian/patches/features/all/xen/softlockup-no-idle-hz.patch
==============================================================================
--- (empty file)
+++ dists/etch/linux-2.6/debian/patches/features/all/xen/softlockup-no-idle-hz.patch	Fri Nov 21 15:24:59 2008
@@ -0,0 +1,63 @@
+# HG changeset patch
+# User Ian Campbell <ian.campbell at xensource.com>
+# Date 1180947924 -3600
+# Node ID 61ed8662b69cc65aeb3371bcc6bc13d616999cd1
+# Parent  139f7610ddf64d9eb149bfef48bc9ead83b54520
+Imported patch softlockup-no-idle-hz.patch from xen-unstable.hg 15200:bd3d6b4c52ec
+
+diff -r 139f7610ddf6 -r 61ed8662b69c include/linux/sched.h
+--- a/include/linux/sched.h	Mon Jun 04 10:05:24 2007 +0100
++++ b/include/linux/sched.h	Mon Jun 04 10:05:24 2007 +0100
+@@ -211,10 +211,15 @@
+ extern void scheduler_tick(void);
+ 
+ #ifdef CONFIG_DETECT_SOFTLOCKUP
++extern unsigned long softlockup_get_next_event(void);
+ extern void softlockup_tick(void);
+ extern void spawn_softlockup_task(void);
+ extern void touch_softlockup_watchdog(void);
+ #else
++static inline unsigned long softlockup_get_next_event(void)
++{
++	return MAX_JIFFY_OFFSET;
++}
+ static inline void softlockup_tick(void)
+ {
+ }
+diff -r 139f7610ddf6 -r 61ed8662b69c kernel/softlockup.c
+--- a/kernel/softlockup.c	Mon Jun 04 10:05:24 2007 +0100
++++ b/kernel/softlockup.c	Mon Jun 04 10:05:24 2007 +0100
+@@ -39,6 +39,19 @@
+ 	__raw_get_cpu_var(touch_timestamp) = jiffies;
+ }
+ EXPORT_SYMBOL(touch_softlockup_watchdog);
++
++unsigned long softlockup_get_next_event(void)
++{
++	int this_cpu = smp_processor_id();
++	unsigned long touch_timestamp = per_cpu(touch_timestamp, this_cpu);
++
++	if (per_cpu(print_timestamp, this_cpu) == touch_timestamp ||
++		did_panic ||
++			!per_cpu(watchdog_task, this_cpu))
++		return MAX_JIFFY_OFFSET;
++
++	return max_t(long, 0, touch_timestamp + HZ - jiffies);
++}
+ 
+ /*
+  * This callback runs from the timer interrupt, and checks
+diff -r 139f7610ddf6 -r 61ed8662b69c kernel/timer.c
+--- a/kernel/timer.c	Mon Jun 04 10:05:24 2007 +0100
++++ b/kernel/timer.c	Mon Jun 04 10:05:24 2007 +0100
+@@ -485,7 +485,9 @@
+ 		if (hr_expires < 3)
+ 			return hr_expires + jiffies;
+ 	}
+-	hr_expires += jiffies;
++	hr_expires = min_t(unsigned long,
++			   softlockup_get_next_event(),
++			   hr_expires) + jiffies;
+ 
+ 	base = __get_cpu_var(tvec_bases);
+ 	spin_lock(&base->lock);

Added: dists/etch/linux-2.6/debian/patches/series/24-extra
==============================================================================
--- (empty file)
+++ dists/etch/linux-2.6/debian/patches/series/24-extra	Fri Nov 21 15:24:59 2008
@@ -0,0 +1 @@
++ features/all/xen/softlockup-no-idle-hz.patch *_xen *_xen-vserver



More information about the Kernel-svn-changes mailing list