mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* tip is broken with NOHZ: restart tick device from irq_enter()
@ 2008-10-20 23:12 Yinghai Lu
  0 siblings, 0 replies; 3+ messages in thread
From: Yinghai Lu @ 2008-10-20 23:12 UTC (permalink / raw)
  To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: Linux Kernel Mailing List

all my servers are broken with following commit.


yhlu@linux-zpir:~/xx/xx/
kernel/tip/linux-2.6> git bisect bad
fb02fbc14d17837b4b7b02dbb36142c16a7bf208 is first bad commit
commit fb02fbc14d17837b4b7b02dbb36142c16a7bf208
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Fri Oct 17 10:01:23 2008 +0200

    NOHZ: restart tick device from irq_enter()

    We did not restart the tick device from irq_enter() to avoid double
    reprogramming and extra events in the return immediate to idle case.

    But long lasting softirqs can lead to a situation where jiffies become
    stale:

    idle()
      tick stopped (reprogrammed to next pending timer)
      halt()
       interrupt
         jiffies updated from irq_enter()
         interrupt handler
         softirq function 1 runs 20ms
         softirq function 2 arms a 10ms timer with a stale jiffies value
         jiffies updated from irq_exit()
         timer wheel has now an already expired timer
         (the one added in function 2)
         timer fires and timer softirq runs

    This was discovered when debugging a timer problem which happend only
    when the ath5k driver is active. The debugging proved that there is a
    softirq function running for more than 20ms, which is a bug by itself.

    To solve this we restart the tick timer right from irq_enter(), but do
    not go through the other functions which are necessary to return from
    idle when need_resched() is set.

    Reported-by: Elias Oltmanns <eo@nebensachen.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Tested-by: Elias Oltmanns <eo@nebensachen.de>

:040000 040000 d36218956b6a233bac4f56acfa0b106f6301c0bd
cf494796e1b4e824ec6da6f337569c4b090e
                                                        f9c5 M  kernel
yhlu@linux-zpir:~/xx/xx/kernel/tip/linux-2.6> git bisect log
git-bisect start
# bad: [8600bfdb4112c49ad09e7339010221e4a531716d] Merge branch 'warnings/simple'
git-bisect bad 8600bfdb4112c49ad09e7339010221e4a531716d
# good: [9601fd2e889cda328dbe66c2a907973916567c11] Merge branch 'sched/urgent'
git-bisect good 9601fd2e889cda328dbe66c2a907973916567c11
# good: [0cfd81031a26717fe14380d18275f8e217571615] Merge
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
git-bisect good 0cfd81031a26717fe14380d18275f8e217571615
# good: [2414719fbef90730a7521efb0074b8fb5905557f] Merge branch 'sched/urgent'
git-bisect good 2414719fbef90730a7521efb0074b8fb5905557f
# bad: [49ee4ff800b1d624fcd8bfa1ea3a55d1227635c3] Merge branch 'x86/doc'
git-bisect bad 49ee4ff800b1d624fcd8bfa1ea3a55d1227635c3
# bad: [0c4a0feaeb867cfa9486cef7555e1f23ceca2609] Merge branch 'tracing/urgent'
git-bisect bad 0c4a0feaeb867cfa9486cef7555e1f23ceca2609
# bad: [a597cb549361f6211d98edc99e672555899838f9] manual merge of
timers/range-hrtimers
git-bisect bad a597cb549361f6211d98edc99e672555899838f9
# bad: [14fedb9d17f5cb35ba805e39b5db9b48cee44c7e] manual merge of timers/nohz
git-bisect bad 14fedb9d17f5cb35ba805e39b5db9b48cee44c7e
# good: [322acf6585f3c4e82ee32a246b0483ca0f6ad3f4] fix documentation
of sysrq-q really
git-bisect good 322acf6585f3c4e82ee32a246b0483ca0f6ad3f4
# good: [c34bec5a44e9486597d78e7a686b2f9088a0564c] NOHZ: split
tick_nohz_restart_sched_tick()
git-bisect good c34bec5a44e9486597d78e7a686b2f9088a0564c
# bad: [fb02fbc14d17837b4b7b02dbb36142c16a7bf208] NOHZ: restart tick
device from irq_enter()
git-bisect bad fb02fbc14d17837b4b7b02dbb36142c16a7bf208

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: tip is broken with NOHZ: restart tick device from irq_enter()
  2008-10-20 23:22 ` Thomas Gleixner
@ 2008-10-20 23:55   ` Yinghai Lu
  0 siblings, 0 replies; 3+ messages in thread
From: Yinghai Lu @ 2008-10-20 23:55 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: Ingo Molnar, H. Peter Anvin, Linux Kernel Mailing List

On Mon, Oct 20, 2008 at 4:22 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Mon, 20 Oct 2008, Yinghai Lu wrote:
>
>> all my servers are broken with following commit.
>
> Can you please explain what exactly is broken ?
>

system will hang after

initcall pcibios_assign_resources+0x0/0x88 returned 0 after 732 msecs
calling  inet_init+0x0/0x1f2 @ 1
NET: Registered protocol family 2


YH

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: tip is broken with NOHZ: restart tick device from irq_enter()
       [not found] <86802c440810201601s78a605f4l98624eedbc108d33@mail.gmail.com>
@ 2008-10-20 23:22 ` Thomas Gleixner
  2008-10-20 23:55   ` Yinghai Lu
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Gleixner @ 2008-10-20 23:22 UTC (permalink / raw)
  To: Yinghai Lu; +Cc: Ingo Molnar, H. Peter Anvin, Linux Kernel Mailing List

On Mon, 20 Oct 2008, Yinghai Lu wrote:

> all my servers are broken with following commit.

Can you please explain what exactly is broken ?

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-10-20 23:56 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-20 23:12 tip is broken with NOHZ: restart tick device from irq_enter() Yinghai Lu
     [not found] <86802c440810201601s78a605f4l98624eedbc108d33@mail.gmail.com>
2008-10-20 23:22 ` Thomas Gleixner
2008-10-20 23:55   ` Yinghai Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®