Thread (4 messages) 4 messages, 2 authors, 2011-11-23

Re: md device io request split

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

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help