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