Re: BUG: using rootfstype=ext4 causes oops

From: Theodore Tso
Date: Thu Apr 16 2009 - 10:54:40 EST


On Thu, Apr 16, 2009 at 11:47:58AM +0100, Andrew Price wrote:
> On Thu, Apr 16, 2009 at 12:19:45AM -0400, Theodore Tso wrote:
> > The stack traces are in the IDE interrupt
> > handler, so it seems surprising that ext4 would trigger it but ext3
> > would not. Have you tried ext4 on any earlier kernel?
>
> It happened with linux-2.6.git kernels earlier in the week when I
> started trying rootfstype=ext4 but I haven't tried properly bisecting it
> yet.
>
> > The main difference I can think of is that ext4 enables barriers by
> > default; maybe that's the case of the IDE breakage? Can you try
> > booting with the boot command option "rootfsflags=barrier=0" as well
> > as "rootfstype=ext4", and see if that helps?
>
> I added rootflags=barrier=0 ...
>
> ... and it doesn't panic.
>
> > If so, it's a bug in the IDE code in that it's not handling barriers
> > correctly.
>
> Bingo.

OK, can you confirm that you tried using ext4 with either 2.6.29 or
2.6.28, and it was working previously? That would make it a
regression which Rafael would track.

Also, I'd suggest sending Bartolmiej details about what IDE controller
you have (the dmesg during a boot under ext3 or ext4 w/ barrier=0
would also be useful), so he can track it down. It might be specific
to a particular IDE controller/device, and not be a generalized IDE
problem, after all.

Anyway, I'll hand this bug off to Raefael's and/or Bartlomiej's very
capable hands, since I suspect you could also reproduce this using
rootfstype=ext3 rootfsflags=barrier=1, and that this is purely an IDE
driver problem.

Regards,

- Ted

> (aside: the ext4 docs say the param is "barriers" with an s; it isn't).

P.S. Where in the documentation file do we have the mount option as
"barriers=0". I went looking for it, and I couldn't find it. What I
see is:

barrier=<0|1(*)> This enables/disables the use of write barriers in
the jbd code. barrier=0 disables, barrier=1 enables.
This also requires an IO stack which can support
barriers, and if jbd gets an error on a barrier
write, it will disable again with a warning.
Write barriers enforce proper on-disk ordering
of journal commits, making volatile disk write caches
safe to use, at some performance penalty. If
your disks are battery-backed in one way or another,
disabling barriers may safely improve performance.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/