public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* bug seen with dynticks from CONFIG_HARDIRQS_SW_RESEND
@ 2007-05-16 23:20 Woodruff, Richard
  2007-05-17 10:10 ` Thomas Gleixner
  0 siblings, 1 reply; 16+ messages in thread
From: Woodruff, Richard @ 2007-05-16 23:20 UTC (permalink / raw)
  To: tglx; +Cc: linux-kernel

Hi,

In testing we were noticing that we were getting some intermittent
crashes in profile_tick() when dyntick was enabled.

The crashes were because the frame pointer per_cpu____irq_regs value was
0.  That code does a user_mode(get_irq_regs()).  Currently regs is set
only upon real hardware entry on an irq.

The crash path shows resend_irqs() could be called with in a context
where set_irq_regs() was not executed.  In one specific case this was
from
softirq->tasklet_action(resend_tasklet)->resend_irqs->handle_level_irq->
handle_IRQ_event->...->profile_tick.

It seems anyone calling kernel/irq/manage.c:enable_irq() at the wrong
time can trigger this crash.

Creating a fake stack and doing a set_irq_regs() fixes the crash.  Would
it be useful to set a pointer to the entry context on all state changes?
For ease I just hacked a default fake stack into the init process after
fork time so there is never a 0 but that doesn't seem so nice.

Regards,
Richard W.


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

end of thread, other threads:[~2008-04-20 14:27 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-16 23:20 bug seen with dynticks from CONFIG_HARDIRQS_SW_RESEND Woodruff, Richard
2007-05-17 10:10 ` Thomas Gleixner
2007-05-17 20:14   ` Woodruff, Richard
2007-05-17 20:38     ` Thomas Gleixner
2007-05-17 22:24       ` Woodruff, Richard
2007-05-18  7:49         ` Thomas Gleixner
2008-04-18 15:43           ` Higer latency with dynamic tick (need for an io-ondemand govenor?) Woodruff, Richard
2008-04-19  3:45             ` [linux-pm] " David Brownell
2008-04-19  7:13               ` Thomas Gleixner
2008-04-19 22:49                 ` david
2008-04-20  3:51                   ` David Brownell
2008-04-20  6:19             ` Arjan van de Ven
2008-04-20 14:09               ` Woodruff, Richard
2008-04-20 12:41             ` Andi Kleen
2008-04-20 14:21               ` Woodruff, Richard
2008-04-20 14:26                 ` Andi Kleen

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