Re: md device io request split
From: NeilBrown <hidden>
Date: 2011-11-23 19:30:51
Attachments
- signature.asc [application/pgp-signature] 828 bytes
From: NeilBrown <hidden>
Date: 2011-11-23 19:30:51
On Wed, 23 Nov 2011 14:22:16 +0100 "Ramon Schönborn" [off-list ref] wrote:
quoted
RAID1 will only limit requests to 4K if the device beneath it is non-contiguous - e.g. a striped array or LVM arrangement were consecutive blocks might be on different devices.how does it know if a device is non-contiguous? Is there a way to have a dm device "marked" like that or force md to use bigger requests? Lets assume a host with about 20 raid1 devices consisting of dm-devices with the mentioned overhead - do you think that not splitting the requests could lead to a noticeable performance improvement? Thanx for your help, Ramon Schönborn
If the device provide a "merge_bvec_fn", then it is assumed to not be contiguous. dm always sets this on its devices. I really have no idea what sort of overhead this creates. You would need to test it. I assume you are using dm simply as a partitioning tool with a single linear mapping per device. If this is the case it should be safe for testing to remove the line blk_queue_merge_bvec(md->queue, dm_merge_bvec); from drivers/md/dm.c and see how that change performance. If you have any dm targets more simple than a single linear mapping with will almost certainly cause IO failure at some point so this should only be used for testing. NeilBrown