Re: next-20081119: general protection fault:get_next_timer_interrupt()

From: Stephen Rothwell
Date: Mon Nov 24 2008 - 20:02:44 EST


On Mon, 24 Nov 2008 16:09:02 -0800 malahal@xxxxxxxxxx wrote:
>
> Thomas Gleixner [tglx@xxxxxxxxxxxxx] wrote:
> > On Mon, 24 Nov 2008, Mike Anderson wrote:
> > > Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> > > > Yeah, block could it be as well. Jens, Mike ?
> > >
> > > I added a comment to bug 12020 on Thursday about a few other systems that
> > > where seeing the signature shown in bug 12020. It appeared from debug that
> > > there where a few paths that where adding timers for requests that where
> > > not expected.
> > >
> > > http://bugzilla.kernel.org/show_bug.cgi?id=12020
> > >
> > > It would be good to know if the debug patch below effects your problem as while.
> > >
> > > If it does we need to investigated a solution to resolve not adding a
> > > timer for these requests.
>
> The block timer code calls del_timer(), should it call del_timer_sync()?
> It is possible although unlikely that you are hitting del_timer_sync vs
> del_timer problem in the block timeout code. Can only be seen on SMP
> systems though!

Is this still a problem in next-20081121? In that tree, the block commit
"block: leave the request timeout timer running even on an empty list"
was changed to add this:

diff --git a/block/blk-core.c b/block/blk-core.c
index 04267d6..44f547c 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -391,6 +391,7 @@ EXPORT_SYMBOL(blk_stop_queue);
void blk_sync_queue(struct request_queue *q)
{
del_timer_sync(&q->unplug_timer);
+ del_timer_sync(&q->timeout);
kblockd_flush_work(&q->unplug_work);
}
EXPORT_SYMBOL(blk_sync_queue);

After I spent some time bisecting a boot failure in PowerPC.
--
Cheers,
Stephen Rothwell sfr@xxxxxxxxxxxxxxxx
http://www.canb.auug.org.au/~sfr/

Attachment: pgp00000.pgp
Description: PGP signature