rpms/kernel/F-7 kernel-2.6.spec, 1.3207, 1.3208 stable-reverts.patch, 1.1, 1.2
Dave Jones (davej)
fedora-extras-commits at redhat.com
Mon May 28 17:24:29 UTC 2007
- Previous message (by thread): rpms/roundcubemail/devel roundcubemail-README.fedora, NONE, 1.1 roundcubemail-generate-tarball.sh, NONE, 1.1 roundcubemail.conf, NONE, 1.1 roundcubemail.logrotate, NONE, 1.1 roundcubemail.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/roundcubemail/F-7 roundcubemail-README.fedora, NONE, 1.1 roundcubemail-generate-tarball.sh, NONE, 1.1 roundcubemail.conf, NONE, 1.1 roundcubemail.logrotate, NONE, 1.1 roundcubemail.spec, NONE, 1.1 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: davej
Update of /cvs/pkgs/rpms/kernel/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv19244
Modified Files:
kernel-2.6.spec stable-reverts.patch
Log Message:
* Mon May 28 2007 Dave Jones <davej at redhat.com>
- Revert suspect #2.
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3207
retrieving revision 1.3208
diff -u -r1.3207 -r1.3208
--- kernel-2.6.spec 28 May 2007 04:16:53 -0000 1.3207
+++ kernel-2.6.spec 28 May 2007 17:23:54 -0000 1.3208
@@ -2431,6 +2431,9 @@
%changelog
* Mon May 28 2007 Dave Jones <davej at redhat.com>
+- Revert suspect #2.
+
+* Mon May 28 2007 Dave Jones <davej at redhat.com>
- Apply 2.6.21.2 & .3 again. Revert suspect #1.
* Sun May 27 2007 Dave Jones <davej at redhat.com>
stable-reverts.patch:
Index: stable-reverts.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/stable-reverts.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- stable-reverts.patch 28 May 2007 04:16:53 -0000 1.1
+++ stable-reverts.patch 28 May 2007 17:23:54 -0000 1.2
@@ -1,4 +1,4 @@
-From davej Mon May 21 15:21:31 2007
+From davej Mon May 21 15:27:36 2007
Return-Path: <chrisw at sous-sol.org>
X-Spam-Checker-Version: SpamAssassin 3.1.8 (2007-02-13) on
gelk.kernelslacker.org
@@ -7,90 +7,183 @@
UNPARSEABLE_RELAY,USER_IN_WHITELIST autolearn=ham version=3.1.8
Received: from pobox.devel.redhat.com [10.11.255.8]
by gelk.kernelslacker.org with IMAP (fetchmail-6.3.6)
- for <davej at localhost> (single-drop); Mon, 21 May 2007 15:21:31 -0400 (EDT)
+ for <davej at localhost> (single-drop); Mon, 21 May 2007 15:27:36 -0400 (EDT)
Received: from pobox.devel.redhat.com ([unix socket])
by pobox.devel.redhat.com (Cyrus v2.2.12-Invoca-RPM-2.2.12-8.1.RHEL4) with LMTPA;
- Mon, 21 May 2007 15:21:10 -0400
+ Mon, 21 May 2007 15:22:41 -0400
X-Sieve: CMU Sieve 2.2
Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254])
- by pobox.devel.redhat.com (8.13.1/8.13.1) with ESMTP id l4LJLAZY021642
- for <davej at pobox.devel.redhat.com>; Mon, 21 May 2007 15:21:10 -0400
+ by pobox.devel.redhat.com (8.13.1/8.13.1) with ESMTP id l4LJMfF3021884
+ for <davej at pobox.devel.redhat.com>; Mon, 21 May 2007 15:22:41 -0400
Received: from sous-sol.org (vpn-248-39.boston.redhat.com [10.13.248.39])
- by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id l4LJL8XM012486;
- Mon, 21 May 2007 15:21:09 -0400
+ by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id l4LJMcYw013202;
+ Mon, 21 May 2007 15:22:40 -0400
Received: from sous-sol.org (localhost.localdomain [127.0.0.1])
- by sous-sol.org (8.14.1/8.13.7) with ESMTP id l4LJGx5c029628;
- Mon, 21 May 2007 12:16:59 -0700
+ by sous-sol.org (8.14.1/8.13.7) with ESMTP id l4LJHNAG030380;
+ Mon, 21 May 2007 12:17:23 -0700
Received: (from chrisw at localhost)
- by sous-sol.org (8.14.1/8.14.1/Submit) id l4LJGxGk029627;
- Mon, 21 May 2007 12:16:59 -0700
-Message-Id: <20070521191659.548011000 at sous-sol.org>
+ by sous-sol.org (8.14.1/8.14.1/Submit) id l4LJHN3B030379;
+ Mon, 21 May 2007 12:17:23 -0700
+Message-Id: <20070521191723.247392000 at sous-sol.org>
References: <20070521191612.800400000 at sous-sol.org>
User-Agent: quilt/0.46-1
-Date: Mon, 21 May 2007 12:16:16 -0700
+Date: Mon, 21 May 2007 12:16:40 -0700
From: Chris Wright <chrisw at sous-sol.org>
-To: linux-kernel at vger.kernel.org, stable at kernel.org
+To: linux-kernel at vger.kernel.org, stable at kernel.org,
+ torvalds at linux-foundation.org
Cc: Justin Forbes <jmforbes at linuxtx.org>,
Zwane Mwaikambo <zwane at arm.linux.org.uk>,
"Theodore Ts'o" <tytso at mit.edu>, Randy Dunlap <rdunlap at xenotime.net>,
Dave Jones <davej at redhat.com>, Chuck Wolber <chuckw at quantumlinux.com>,
Chris Wedgwood <reviews at ml.cw.f00f.org>,
Michael Krufky <mkrufky at linuxtv.org>,
- Chuck Ebbert <cebbert at redhat.com>, torvalds at linux-foundation.org,
- akpm at linux-foundation.org, alan at lxorguk.ukuu.org.uk,
- Len Brown <lenb at kernel.org>, linux-acpi at vger.kernel.org,
- Len Brown <len.brown at intel.com>
-Subject: [patch 04/69] ACPI: Fix 2.6.21 boot regression on P4/HT
-Content-Disposition: inline; filename=acpi-fix-2.6.21-boot-regression-on-p4-ht.patch
+ Chuck Ebbert <cebbert at redhat.com>, akpm at linux-foundation.org,
+ alan at lxorguk.ukuu.org.uk, rostedt at goodmis.org, mlord at pobox.com,
+ tglx at linutronix.de, mingo at elte.hu
+Subject: [patch 28/69] highres/dyntick: prevent xtime lock contention
+Content-Disposition: inline; filename=highres-dyntick-prevent-xtime-lock-contention.patch
X-Virus-Scanned: ClamAV version 0.90.2, clamav-milter version 0.90.2 on sequoia.sous-sol.org
X-Virus-Status: Clean
Status: RO
-Content-Length: 1484
-Lines: 45
+Content-Length: 4678
+Lines: 138
-stable review patch. If anyone has any objections, please let us know.
---------------------
-From: Len Brown <lenb at kernel.org>
+From: Thomas Gleixner <tglx at linutronix.de>
-Up through 2.6.20 we cleared the FADT.CSTATE_CONTROL field
-for FADT versions before r3, because it made no sense
-for that reserved field to be set for pre-ACPI 2.0 systems.
-
-It turns out that not clearing this field exposes
-Linux to SMM BIOS failures, so do the same in 2.6.21.
-
-http://bugzilla.kernel.org/show_bug.cgi?id=8346
-
-Signed-off-by: Len Brown <len.brown at intel.com>
+While the !highres/!dyntick code assigns the duty of the do_timer() call to
+one specific CPU, this was dropped in the highres/dyntick part during
+development.
+
+Steven Rostedt discovered the xtime lock contention on highres/dyntick due
+to several CPUs trying to update jiffies.
+
+Add the single CPU assignement back. In the dyntick case this needs to be
+handled carefully, as the CPU which has the do_timer() duty must drop the
+assignement and let it be grabbed by another CPU, which is active.
+Otherwise the do_timer() calls would not happen during the long sleep.
+
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Acked-by: Ingo Molnar <mingo at elte.hu>
+Cc: Steven Rostedt <rostedt at goodmis.org>
+Acked-by: Mark Lord <mlord at pobox.com>
+Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
Signed-off-by: Chris Wright <chrisw at sous-sol.org>
---
- drivers/acpi/tables/tbfadt.c | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
---- linux-2.6.21.1.orig/drivers/acpi/tables/tbfadt.c
-+++ linux-2.6.21.1/drivers/acpi/tables/tbfadt.c
-@@ -347,6 +347,20 @@ static void acpi_tb_convert_fadt(void)
- acpi_gbl_xpm1b_enable.space_id = acpi_gbl_FADT.xpm1a_event_block.space_id;
+ kernel/time/tick-common.c | 8 +++++++-
+ kernel/time/tick-internal.h | 1 +
+ kernel/time/tick-sched.c | 42 ++++++++++++++++++++++++++++++++++++++++--
+ 3 files changed, 48 insertions(+), 3 deletions(-)
+
+--- linux-2.6.21.1.orig/kernel/time/tick-common.c
++++ linux-2.6.21.1/kernel/time/tick-common.c
+@@ -31,7 +31,7 @@ DEFINE_PER_CPU(struct tick_device, tick_
+ */
+ ktime_t tick_next_period;
+ ktime_t tick_period;
+-static int tick_do_timer_cpu = -1;
++int tick_do_timer_cpu __read_mostly = -1;
+ DEFINE_SPINLOCK(tick_device_lock);
+ /*
+@@ -295,6 +295,12 @@ static void tick_shutdown(unsigned int *
+ clockevents_exchange_device(dev, NULL);
+ td->evtdev = NULL;
}
++ /* Transfer the do_timer job away from this cpu */
++ if (*cpup == tick_do_timer_cpu) {
++ int cpu = first_cpu(cpu_online_map);
++
++ tick_do_timer_cpu = (cpu != NR_CPUS) ? cpu : -1;
++ }
+ spin_unlock_irqrestore(&tick_device_lock, flags);
+ }
+
+--- linux-2.6.21.1.orig/kernel/time/tick-internal.h
++++ linux-2.6.21.1/kernel/time/tick-internal.h
+@@ -5,6 +5,7 @@ DECLARE_PER_CPU(struct tick_device, tick
+ extern spinlock_t tick_device_lock;
+ extern ktime_t tick_next_period;
+ extern ktime_t tick_period;
++extern int tick_do_timer_cpu __read_mostly;
+
+ extern void tick_setup_periodic(struct clock_event_device *dev, int broadcast);
+ extern void tick_handle_periodic(struct clock_event_device *dev);
+--- linux-2.6.21.1.orig/kernel/time/tick-sched.c
++++ linux-2.6.21.1/kernel/time/tick-sched.c
+@@ -221,6 +221,18 @@ void tick_nohz_stop_sched_tick(void)
+ ts->tick_stopped = 1;
+ ts->idle_jiffies = last_jiffies;
+ }
++
++ /*
++ * If this cpu is the one which updates jiffies, then
++ * give up the assignment and let it be taken by the
++ * cpu which runs the tick timer next, which might be
++ * this cpu as well. If we don't drop this here the
++ * jiffies might be stale and do_timer() never
++ * invoked.
++ */
++ if (cpu == tick_do_timer_cpu)
++ tick_do_timer_cpu = -1;
++
+ /*
+ * calculate the expiry time for the next timer wheel
+ * timer
+@@ -338,12 +350,24 @@ static void tick_nohz_handler(struct clo
+ {
+ struct tick_sched *ts = &__get_cpu_var(tick_cpu_sched);
+ struct pt_regs *regs = get_irq_regs();
++ int cpu = smp_processor_id();
+ ktime_t now = ktime_get();
+
+ dev->next_event.tv64 = KTIME_MAX;
+
+ /*
-+ * _CST object and C States change notification start with
-+ * ACPI 2.0 (FADT r3). Although the field should be Reserved
-+ * and 0 before then, some pre-r3 FADT set this field and
-+ * it results in SMM-related boot failures. For them, clear it.
++ * Check if the do_timer duty was dropped. We don't care about
++ * concurrency: This happens only when the cpu in charge went
++ * into a long sleep. If two cpus happen to assign themself to
++ * this duty, then the jiffies update is still serialized by
++ * xtime_lock.
+ */
-+ if ((acpi_gbl_FADT.header.revision < 3) &&
-+ (acpi_gbl_FADT.cst_control != 0)) {
-+ ACPI_WARNING((AE_INFO,
-+ "Ignoring BIOS FADT r%u C-state control",
-+ acpi_gbl_FADT.header.revision));
-+ acpi_gbl_FADT.cst_control = 0;
-+ }
++ if (unlikely(tick_do_timer_cpu == -1))
++ tick_do_timer_cpu = cpu;
+
- }
+ /* Check, if the jiffies need an update */
+- tick_do_update_jiffies64(now);
++ if (tick_do_timer_cpu == cpu)
++ tick_do_update_jiffies64(now);
+
+ /*
+ * When we are idle and the tick is stopped, we have to touch
+@@ -431,9 +455,23 @@ static enum hrtimer_restart tick_sched_t
+ struct hrtimer_cpu_base *base = timer->base->cpu_base;
+ struct pt_regs *regs = get_irq_regs();
+ ktime_t now = ktime_get();
++ int cpu = smp_processor_id();
++
++#ifdef CONFIG_NO_HZ
++ /*
++ * Check if the do_timer duty was dropped. We don't care about
++ * concurrency: This happens only when the cpu in charge went
++ * into a long sleep. If two cpus happen to assign themself to
++ * this duty, then the jiffies update is still serialized by
++ * xtime_lock.
++ */
++ if (unlikely(tick_do_timer_cpu == -1))
++ tick_do_timer_cpu = cpu;
++#endif
+
+ /* Check, if the jiffies need an update */
+- tick_do_update_jiffies64(now);
++ if (tick_do_timer_cpu == cpu)
++ tick_do_update_jiffies64(now);
- /******************************************************************************
+ /*
+ * Do not call, when we are not in irq context and have
--
- Previous message (by thread): rpms/roundcubemail/devel roundcubemail-README.fedora, NONE, 1.1 roundcubemail-generate-tarball.sh, NONE, 1.1 roundcubemail.conf, NONE, 1.1 roundcubemail.logrotate, NONE, 1.1 roundcubemail.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/roundcubemail/F-7 roundcubemail-README.fedora, NONE, 1.1 roundcubemail-generate-tarball.sh, NONE, 1.1 roundcubemail.conf, NONE, 1.1 roundcubemail.logrotate, NONE, 1.1 roundcubemail.spec, NONE, 1.1 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list