Thread (9 messages) 9 messages, 4 authors, 2016-04-29

Re: [PATCH] MD: make bio mergeable

From: Ming Lei <hidden>
Date: 2016-04-26 15:18:04
Also in: lkml, stable

On Tue, Apr 26, 2016 at 10:21 PM, Jens Axboe [off-list ref] wrote:
On 04/26/2016 03:56 AM, Ming Lei wrote:
quoted
On Tue, Apr 26, 2016 at 7:52 AM, Shaohua Li [off-list ref] wrote:
quoted
blk_queue_split marks bio unmergeable, which makes sense for normal bio.
But if dispatching the bio to underlayer disk, the blk_queue_split
checks are invalid, hence it's possible the bio becomes mergeable.

If the bio from md is splitted and marked as NOMERGE, it means some
queue limits are reached. So looks the raid's queue limit is set as not
big enough, could your find which limit causes the splitting and nomerge?

raid0 sets a limit of the stripe size for IO. Once the IO has passed md,
there's no reason why we can't merge for the lower driver. This is
(potentially) a huge performance issue on trim, since a lot of devices are
trim ops / sec limited rather than throughput limited.
Just found raid0 maps the chunk sectors into max hw sectors of queue,
and dm uses blk_stack_limits() to set up the limits.

So looks a raid specific issue, then the fix is correct, sorry for the noise.

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