From: Thomas Gleixner <tglx@linutronix.de>
To: Ingo Molnar <mingo@elte.hu>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Jens Axboe <axboe@kernel.dk>,
Andrew Morton <akpm@linux-foundation.org>,
werner <w.landgraf@ru.ru>, "H. Peter Anvin" <hpa@zytor.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [block IO crash] Re: 2.6.39-rc5-git2 boot crashs
Date: Wed, 4 May 2011 11:52:44 +0200 (CEST) [thread overview]
Message-ID: <alpine.LFD.2.02.1105041124080.3005@ionos> (raw)
In-Reply-To: <20110504083559.GB25724@elte.hu>
On Wed, 4 May 2011, Ingo Molnar wrote:
> 1415 if (!nr_sectors)
> 1416 return 0;
> 1417
> 1418 /* Test device or partition size, when known. */
> 1419 maxsector = i_size_read(bio->bi_bdev->bd_inode) >> 9; <==== [ **CRASH** ]
> 1420 if (maxsector) {
> 1421 sector_t sector = bio->bi_sector;
> 1422
> 1423 if (maxsector < nr_sectors || maxsector - nr_sectors < sector) {
>
> bio->bi_bdev has become NULL?
>
> I do not think the _cond_resched() was called, judging from stack contents. But
> we just had an IRQ:
>
> [<c1d74030>] ? common_interrupt+0x30/0x40
>
> So we might have raced with block IO IRQ queue-completion/submission activites.
>
> But maybe it was a reschedule after all, just the stack does not carry any
> traces of it anymore. IRQs do not clear ->bi_bdev, right? Unless the bio
> refcounts are wrong and an IRQ's completion actually frees the bio, right?
Looking at the call chain that's impossible:
generic_make_request
submit_bio
submit_bh
submit_bh does:
bio = bio_alloc()
bio_get(bio)
submit_bio(bio)
bio_put(bio)
So that bio is not yet known to anything else than the calling
code.
One possibility is that bh->bdev is NULL when submit_bh() is called,
which I think is rather unlikely, but can be easily verified with
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -2887,6 +2887,7 @@ int submit_bh(int rw, struct buffer_head * bh)
BUG_ON(!bh->b_end_io);
BUG_ON(buffer_delay(bh));
BUG_ON(buffer_unwritten(bh));
+ BUG_ON(!bh->b_bdev);
/*
* Only clear out a write error when rewriting
But I rather suspect, that CONFIG_SLUB=y is the thing we need to look
at. The lockless fastpath cmpxchg comes to my mind.
Either we generate broken code with that ELAN caused options or
that combo triggers some hidden problem in SLUB.
Thanks,
tglx
next prev parent reply other threads:[~2011-05-04 9:53 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-02 22:28 werner
2011-05-02 23:24 ` Linus Torvalds
[not found] ` <web-516990066@zbackend1.aha.ru>
2011-05-03 15:22 ` Linus Torvalds
2011-05-03 19:08 ` Ingo Molnar
2011-05-03 20:17 ` Linus Torvalds
2011-05-03 20:20 ` H. Peter Anvin
2011-05-03 20:50 ` Ingo Molnar
2011-05-03 21:45 ` Linus Torvalds
2011-05-03 22:01 ` H. Peter Anvin
2011-05-04 7:19 ` Borislav Petkov
2011-05-04 7:38 ` Ingo Molnar
2011-05-04 7:55 ` Borislav Petkov
2011-05-04 8:35 ` [block IO crash] " Ingo Molnar
2011-05-04 9:52 ` Thomas Gleixner [this message]
2011-05-04 10:19 ` Ingo Molnar
2011-05-04 10:25 ` Ingo Molnar
2011-05-04 10:33 ` Ingo Molnar
2011-05-04 12:37 ` Ingo Molnar
2011-05-04 12:36 ` Ingo Molnar
2011-05-04 11:11 ` Thomas Gleixner
2011-05-04 11:16 ` Pekka Enberg
2011-05-04 11:27 ` Tejun Heo
2011-05-04 12:51 ` Pekka Enberg
2011-05-04 12:57 ` Ingo Molnar
2011-05-04 13:02 ` Thomas Gleixner
2011-05-04 13:00 ` Thomas Gleixner
2011-05-04 13:20 ` Tejun Heo
2011-05-04 14:10 ` Thomas Gleixner
2011-05-04 14:14 ` Ingo Molnar
2011-05-04 14:36 ` [PATCH] slub: Fix the lockless code on 32-bit platforms with no 64-bit cmpxchg Ingo Molnar
2011-05-04 14:42 ` Christoph Lameter
2011-05-04 16:30 ` Ingo Molnar
2011-05-04 21:52 ` Ben Greear
2011-05-04 22:00 ` Linus Torvalds
2011-05-04 22:22 ` Ben Greear
2011-05-04 14:19 ` [block IO crash] Re: 2.6.39-rc5-git2 boot crashs Christoph Lameter
2011-05-04 14:25 ` Tejun Heo
2011-05-04 14:35 ` Christoph Lameter
2011-05-04 15:20 ` Ingo Molnar
2011-05-04 14:46 ` Thomas Gleixner
2011-05-04 15:00 ` Christoph Lameter
2011-05-04 15:13 ` Linus Torvalds
2011-05-04 15:28 ` Christoph Lameter
2011-05-04 15:37 ` Pekka Enberg
2011-05-04 15:53 ` Linus Torvalds
2011-05-04 18:20 ` Linus Torvalds
2011-05-04 18:49 ` Christoph Lameter
2011-05-04 19:07 ` Linus Torvalds
2011-05-04 19:30 ` Christoph Lameter
2011-05-04 19:38 ` Linus Torvalds
2011-05-04 20:04 ` Christoph Lameter
2011-05-04 20:21 ` Valdis.Kletnieks
2011-05-04 20:32 ` Christoph Lameter
2011-05-04 20:49 ` Ingo Molnar
2011-05-04 21:06 ` Linus Torvalds
2011-05-04 21:19 ` Linus Torvalds
2011-05-04 21:40 ` Thomas Gleixner
2011-05-05 9:54 ` Tejun Heo
2011-05-05 10:18 ` Ingo Molnar
2011-05-05 10:45 ` Thomas Gleixner
2011-05-05 18:20 ` Christoph Lameter
2011-05-05 19:13 ` Ingo Molnar
2011-05-05 19:53 ` werner
2011-05-05 20:09 ` Christoph Lameter
2011-05-05 21:12 ` werner
2011-05-05 22:27 ` Thomas Gleixner
[not found] ` <web-518008166@zbackend1.aha.ru>
[not found] ` <web-518059420@zbackend1.aha.ru>
[not found] ` <20110505060204.GA28015@elte.hu>
2011-05-05 6:46 ` werner
2011-05-04 15:37 ` [block IO crash] " Linus Torvalds
2011-05-04 16:08 ` Christoph Lameter
2011-05-04 16:50 ` Ingo Molnar
2011-05-04 17:12 ` Thomas Gleixner
2011-05-04 15:41 ` Pekka Enberg
2011-05-04 13:22 ` Ingo Molnar
2011-05-04 14:21 ` Christoph Lameter
2011-05-04 14:04 ` Christoph Lameter
2011-05-04 14:07 ` Tejun Heo
2011-05-04 14:21 ` Thomas Gleixner
2011-05-04 10:13 ` Ingo Molnar
2011-05-04 10:41 ` Ingo Molnar
2011-05-04 10:45 ` Ingo Molnar
2011-05-04 11:06 ` Ingo Molnar
2011-05-04 12:37 ` Ingo Molnar
2011-05-04 12:47 ` Ingo Molnar
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.2.02.1105041124080.3005@ionos \
--to=tglx@linutronix.de \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=torvalds@linux-foundation.org \
--cc=w.landgraf@ru.ru \
/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