Messages in this thread | ![/](/images/icornerl.gif) | | From | Neil Brown <> | Date | Wed, 24 Dec 2003 21:51:00 +1100 | Subject | Re: 2.6.0, SiI3112, md raid1 problem: bio too big device (128 > 15) |
| |
On Tuesday December 23, jim+linux-kernel@jimlawson.org wrote: > Hi all, > > I am having trouble creating a raid1 array under 2.6.0. I am able to > create raid0 and raid5 mds, but raid1s fail with "bio too big device hde3 > (128 > 15)", which doesn't tell me a lot. I can see it's in > drivers/block/ll_rw_blk.c, right at the boundary with the device driver, > but I'm not enough of a kernel wonk to find out a lot more.
This is a raid1 bug. Some block devices have limits on the sizes of io requests that they can handle, and advertise these limits with ->max_sectors and ->merge_bvec_fn (and a few others). Any device MUST be able to accept a single page IO at any offset.
When raid1 does a 'resync' it does all IO in 64K requests, ignoring the restrictions. Getting raid1 resync to handle the restrictions is non-trivial (I have code, but it is still buggy).
A simple interim fix is to replace
#define RESYNC_BLOCK_SIZE (64*1024)
with
#define RESYNC_BLOCK_SIZE PAGE_SIZE
NeilBrown - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |