On Tue, Apr 26, 2016 at 10:21 PM, Jens Axboe <axboe@xxxxxxxxx> wrote: > On 04/26/2016 03:56 AM, Ming Lei wrote: >> >> On Tue, Apr 26, 2016 at 7:52 AM, Shaohua Li <shli@xxxxxx> wrote: >>> >>> 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 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html