Re: Write barriers on MD RAID1

From: Ken Milmore
Date: Sun Jun 21 2009 - 09:57:42 EST


I thought I had better bump my previous post as this regression is still present in 2.6.29.5.

To recap, commit cec0707e40ae25794b5a2de7b7f03c51961f80d9 has broken write barriers on md raid1 block devices in 2.6.29 and later kernels. Reversing this commit appears to fix the problem.

Please let me know if I'm harassing the wrong maintainers here!

-Ken.


NeilBrown wrote:
On Sun, May 24, 2009 9:54 am, Ken Milmore wrote:
Support for write barriers on MD RAID1 devices appears to be broken on
2.6.29 and later kernels. Mounting an ext3 or ext4 filesystem over an
md raid1 block device gives the kernel message:

JBD: barrier-based sync failed on md0 - disabling barriers

Is this intentional? It looks like a regression to me, since write
barriers (ostensibly) worked for MD RAID1 on earlier kernels (well, all
of the 2.6.27 series at least...)

Doing a git bisect suggested that this is the culprit:

commit cec0707e40ae25794b5a2de7b7f03c51961f80d9
Author: Jens Axboe <jens.axboe@xxxxxxxxxx>
Date: Tue Jan 13 15:28:32 2009 +0100

block: silently error an unsupported barrier bio

Yes, that patch is broken.
the new code it introduces should probably go in the top of
__make_request rather than just before the call to ->make_request_fn.
make_request_fn functions other than __make_request generally
don't use ->next_ordered at all.

Jens? Would you agree?

NeilBrown


Rolling this back from 2.6.29.4 made the JBD error message go away for
me. I tried to do some disk benchmarking to determine if write barriers
were really still working, but the results were not very conclusive.

Details of test setup:
- 2.6.29.4 kernel (config from slackware-current)
- ext3 filesystem (mounted with barrier=1), also tried ext4
- MD RAID1 block device over two SATA disks
- Intel motherboard AHCI controller (82801)

I got similar behaviour on a virtualised setup using qemu, with the RAID
over two emulated IDE disks.

Please contact me if I can provide any further information.

-Ken Milmore.




--
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/