mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Andi Kleen <andi@firstfloor.org>
Cc: Gabriel C <crazy@frugalware.org>,
	Gabriel C <nix.or.die@googlemail.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	LKML <linux-kernel@vger.kernel.org>,
	Adrian Bunk <bunk@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Natalie Protasevich <protasnb@gmail.com>,
	andi-bz@firstfloor.org, Ingo Molnar <mingo@elte.hu>
Subject: Re: 2.6.25-rc5-git6: Reported regressions from 2.6.24
Date: Sat, 22 Mar 2008 15:41:01 +0100 (CET)	[thread overview]
Message-ID: <alpine.LFD.1.00.0803221530290.3781@apollo.tec.linutronix.de> (raw)
In-Reply-To: <20080322142502.GA10687@one.firstfloor.org>

On Sat, 22 Mar 2008, Andi Kleen wrote:
> > CPU0 runs the watchdog timer and schedules it on CPU1.
> > 
> > With NO_HZ enabled CPU1 is in a long idle sleep. At this point of the
> > boot process there is probably no timer pending on CPU1, which means
> > the idle sleep is infinite.
> > 
> > Now some time later CPU1 gets woken by an interrupt/IPI and runs the
> > timer wheel. At this point the pm_timer which is the reference clock
> > has already wrapped around, so the watchdog thinks that there is a
> 
> In my old original own noidletick code I simply limited all sleeps 
> to below the wrap around of the primary timer.  Wouldn't something 
> like that work?

No, it does not solve the real problem of not reevaluating the timer
wheel on the idle CPU when a timer gets added from some other CPU. We
would paper over the watchdog issue, but postponing a timer event,
which was added cross CPU to some artifical expiry time is simply
wrong.

> I'm not sure just doing this for add_timer_on() only is correct.
> After all it could affect any other code not run by add_timer_on()
> couldn't it?

No, it's limited to add_timer_on() simply because no other code can
add a new timer (timer_list or hrtimer) which modifies the next event
on another CPU. There is also the rare case, when one CPU runs the
timer callback and the other one modifies the timer, but that's not
relevant for the NOHZ problem because the CPU which runs the callback
is not idle at this point.

All other timer operations are CPU local and reevaluated before the
CPU goes idle again.

Thanks,

	tglx

  reply	other threads:[~2008-03-22 14:42 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-16 23:18 Rafael J. Wysocki
2008-03-16 23:33 ` Linus Torvalds
2008-03-16 23:38   ` Rafael J. Wysocki
2008-03-17  0:20 ` Gabriel C
2008-03-17 16:17   ` Thomas Gleixner
2008-03-17 18:20     ` Gabriel C
2008-03-18  4:01       ` Gabriel C
2008-03-18  4:24         ` Gabriel C
2008-03-21 15:24         ` Gabriel C
2008-03-21 16:26           ` Thomas Gleixner
2008-03-21 16:46             ` Gabriel C
2008-03-21 18:11               ` Gabriel C
2008-03-21 18:49                 ` Thomas Gleixner
2008-03-21 19:23                   ` Gabriel C
2008-03-21 20:55                     ` Gabriel C
2008-03-21 21:15                       ` Thomas Gleixner
2008-03-21 21:59                         ` Gabriel C
2008-03-21 22:09                           ` Thomas Gleixner
2008-03-22 11:21                             ` Thomas Gleixner
2008-03-22 13:34                               ` Gabriel C
2008-03-22 14:30                                 ` Thomas Gleixner
2008-03-22 15:13                                   ` Gabriel C
2008-03-22 16:32                                     ` Thomas Gleixner
2008-03-22 21:55                                       ` Thomas Gleixner
2008-03-22 22:41                                         ` Gabriel C
2008-03-23 11:00                                           ` Gabriel C
2008-03-23 23:31                                             ` Gabriel C
2008-03-24 10:24                                               ` Thomas Gleixner
2008-03-24 22:33                                                 ` Gabriel C
2008-03-25  8:06                                                   ` Thomas Gleixner
2008-03-26 12:43                                                     ` Gabriel C
2008-03-26 14:51                                                       ` Thomas Gleixner
2008-03-22 14:25                               ` Andi Kleen
2008-03-22 14:41                                 ` Thomas Gleixner [this message]
2008-03-17  6:47 ` Jason Wu
2008-03-17 21:36   ` Rafael J. Wysocki
2008-03-23 19:01 ` Christian Kujau
2008-03-23 19:06   ` Rafael J. Wysocki
2008-03-23 19:40     ` Chr
2008-03-23 21:17 ` Christian Kujau
2008-03-23 21:29   ` Rafael J. Wysocki

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=alpine.LFD.1.00.0803221530290.3781@apollo.tec.linutronix.de \
    --to=tglx@linutronix.de \
    --cc=akpm@linux-foundation.org \
    --cc=andi-bz@firstfloor.org \
    --cc=andi@firstfloor.org \
    --cc=bunk@kernel.org \
    --cc=crazy@frugalware.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=nix.or.die@googlemail.com \
    --cc=protasnb@gmail.com \
    --cc=rjw@sisk.pl \
    --cc=torvalds@linux-foundation.org \
    /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

Powered by JetHome