From: Thomas Gleixner <tglx@linutronix.de>
To: Bernhard Rosenkraenzer <bero@arklinux.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>, Ingo Molnar <mingo@elte.hu>,
Andi Kleen <ak@suse.de>, Chris Wright <chrisw@sous-sol.org>,
Arjan van de Ven <arjan@infradead.org>,
Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>,
Adam Belay <abelay@novell.com>, Len Brown <lenb@kernel.org>,
Dave Miller <davem@davemloft.net>,
Paul Mundt <lethal@linux-sh.org>,
Russell King <rmk+kernel@arm.linux.org.uk>
Subject: Re: [patch-mm 01/25] NOHZ: Fix nox x86 dyntick idle handling
Date: Sat, 16 Jun 2007 16:54:43 +0200 [thread overview]
Message-ID: <1182005683.8176.369.camel@chaos> (raw)
In-Reply-To: <200706161636.50661.bero@arklinux.org>
On Sat, 2007-06-16 at 16:36 +0200, Bernhard Rosenkraenzer wrote:
> On Saturday 16 June 2007, Thomas Gleixner wrote:
>
> > +#if defined(CONFIG_NO_HZ) && !defined(CONFIG_NONIRQ_WAKEUP)
> > + /* Make sure that timer wheel updates are propagated */
> > + if (!in_interrupt() && idle_cpu(smp_processor_id()) && !need_resched())
> > + tick_nohz_stop_sched_tick();a
> > +#endif
> > preempt_enable_no_resched();
> > }
>
> The bit above breaks the build for a CONFIG_NO_HZ build without
> CONFIG_NONIRQ_WAKEUP -- please remove the extra "a" after
> tick_nohz_stop_sched_tick(); before applying this.
Oops. Must have happened when I edited the mailbox. Replacement patch
below:
tglx
--------------------->
Subject: NOHZ: Fix nox x86 dyntick idle handling
The cpuidle patches moved the tick nohz handling from irq_exit into
the inner idle loop. The change is correct as it covers non interrupt
based wakeups (e.g DMA) on x86 as well, but the move breaks ARM, SH
and SPARC64.
Keep the original implementation and deselet the irq exit code for
those architectures which have no irq idle wakeups.
This way the non affected architectures are not burdened with the
extra changes in the idle implementation.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Adam Belay <abelay@novell.com>
Cc: Len Brown <lenb@kernel.org>
Cc: Dave Miller <davem@davemloft.net>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
---
arch/i386/Kconfig | 4 ++++
kernel/softirq.c | 5 +++++
2 files changed, 9 insertions(+)
Index: linux-2.6.22-rc4-mm/arch/i386/Kconfig
===================================================================
--- linux-2.6.22-rc4-mm.orig/arch/i386/Kconfig 2007-06-16 17:04:14.000000000 +0200
+++ linux-2.6.22-rc4-mm/arch/i386/Kconfig 2007-06-16 17:04:18.000000000 +0200
@@ -31,6 +31,10 @@ config GENERIC_CLOCKEVENTS_BROADCAST
default y
depends on X86_LOCAL_APIC
+config NONIRQ_WAKEUP
+ bool
+ default y
+
config LOCKDEP_SUPPORT
bool
default y
Index: linux-2.6.22-rc4-mm/kernel/softirq.c
===================================================================
--- linux-2.6.22-rc4-mm.orig/kernel/softirq.c 2007-06-16 17:04:14.000000000 +0200
+++ linux-2.6.22-rc4-mm/kernel/softirq.c 2007-06-16 17:04:39.000000000 +0200
@@ -304,6 +304,11 @@ void irq_exit(void)
if (!in_interrupt() && local_softirq_pending())
invoke_softirq();
+#if defined(CONFIG_NO_HZ) && !defined(CONFIG_NONIRQ_WAKEUP)
+ /* Make sure that timer wheel updates are propagated */
+ if (!in_interrupt() && idle_cpu(smp_processor_id()) && !need_resched())
+ tick_nohz_stop_sched_tick();
+#endif
preempt_enable_no_resched();
}
next prev parent reply other threads:[~2007-06-16 14:54 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-16 10:36 [patch-mm 00/25] High resolution timer updates and x86_64 support - V2 Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 01/25] NOHZ: Fix nox x86 dyntick idle handling Thomas Gleixner
2007-06-16 14:36 ` Bernhard Rosenkraenzer
2007-06-16 14:54 ` Thomas Gleixner [this message]
2007-06-16 10:36 ` [patch-mm 02/25] ACPI: Move timer broadcast and pmtimer access before C3 arbiter shutdown Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 03/25] Clockevents remove prototypes of removed functions Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 04/25] Timekeeping: Fixup shadow variable argument Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 05/25] timer.c cleanup recently introduced whitespace damage Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 06/25] clockevents: Fix resume logic Thomas Gleixner
2007-06-16 18:51 ` Separate arch patching (Re: [patch-mm 06/25] clockevents: Fix resume logic) Oleg Verych
2007-06-16 19:04 ` Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 07/25] Tick management: spread timer interrupt Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 08/25] i386: PIT stop only, when in periodic or oneshot mode Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 09/25] clockevents: Fix device replacement Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 10/25] highres: Improve debug output Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 11/25] hrtimer: speedup hrtimer_enqueue Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 12/25] pcspkr: use the global PIT lock Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 13/25] i386: hpet assumes boot cpu is 0 Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 14/25] NTP: Move the cmos update code into ntp.c Thomas Gleixner
2007-06-19 8:26 ` Franck Bui-Huu
2007-06-16 10:36 ` [patch-mm 15/25] clocksource: add settimeofday hook for PPC Thomas Gleixner
2007-06-16 15:51 ` Daniel Walker
2007-06-20 6:57 ` [RFC] clocksouce implementation for powerpc Tony Breeds
2007-06-20 14:57 ` Daniel Walker
2007-06-20 17:20 ` Sergei Shtylyov
2007-06-20 17:31 ` Thomas Gleixner
2007-06-20 18:11 ` Sergei Shtylyov
2007-06-22 6:23 ` Tony Breeds
2007-06-20 16:53 ` Sergei Shtylyov
2007-06-22 6:10 ` Tony Breeds
2007-06-22 12:42 ` Sergei Shtylyov
2007-06-20 21:06 ` john stultz
2007-06-22 6:28 ` Tony Breeds
2007-06-16 10:36 ` [patch-mm 16/25] x86_64: untangle asm/hpet.h from asm/timex.h Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 17/25] x86_64: Use generic cmos update Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 18/25] i386: move setup_pit_timer to the correct header file Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 19/25] x86-64: remove dead code and other janitor work in tsc.c Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 20/25] x86_64: Convert to cleckevents Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 21/25] x86_64: hpet restore vread Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 22/25] x86_64: restore restore nohpet cmdline Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 23/25] x86-64 block irq balancing for timer Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 24/25] x86_64: prep idle loop for dynticks Thomas Gleixner
2007-06-16 10:36 ` [patch-mm 25/25] x86_64: enable high resolution timers and dynticks Thomas Gleixner
2007-06-16 14:41 ` [patch-mm 00/25] High resolution timer updates and x86_64 support - V2 Alistair John Strachan
2007-06-16 19:06 ` Thomas Gleixner
2007-06-16 23:04 ` Nigel Cunningham
2007-06-18 20:06 ` Valdis.Kletnieks
2007-06-18 20:24 ` Pallipadi, Venkatesh
2007-06-18 21:49 ` Valdis.Kletnieks
2007-06-18 22:10 ` Pallipadi, Venkatesh
2007-06-19 11:28 ` Valdis.Kletnieks
2007-06-19 1:52 ` Arjan van de Ven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1182005683.8176.369.camel@chaos \
--to=tglx@linutronix.de \
--cc=abelay@novell.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=arjan@infradead.org \
--cc=bero@arklinux.org \
--cc=chrisw@sous-sol.org \
--cc=davem@davemloft.net \
--cc=lenb@kernel.org \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rmk+kernel@arm.linux.org.uk \
--cc=venkatesh.pallipadi@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox