[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