[PATCH for-4.4] block: split bios to max possible length
Keith Busch
keith.busch at intel.com
Wed Jan 6 07:29:17 PST 2016
On Wed, Jan 06, 2016 at 02:29:16PM +0800, Ming Lei wrote:
> Also not mention your patch doesn't update front_seg_size/back_seg_size/
> seg_size correctly.
>
> That is why I said we should be careful about splitting bvec because it
> is never used or supported before.
Ok, that's an easy fix, but it's not really a functional difference. The
request is not mergeable after this, which is the only use for back and
front seg sizes.
> > The nvme driver is okay to take physically merged pages. It splits them
> > into PRPs accordingly, and it's faster to DMA map physically contiguous
> > just because there are fewer segments to iterate, so NVMe would prefer
> > to let them coalesce.
>
> If so, NO_SG_MERGE should be removed now.
Sounds good.
> Could you share your test case? Last time I use null_blk to observe
> the performance difference between NO_SG_MERGE vs. non-NO_SG_MERGE,
> and basically no difference is observed.
null_blk doesn't do anything, so it's probably difficult to measure
that. Use a driver that DMA maps the data, uses MMIO to submit to h/w
and takes an interrupt. You can measure all these when you create 50%
more commands than necessary with unneeded splits.
More information about the Linux-nvme
mailing list