[PATCH for-4.4] block: split bios to max possible length

Keith Busch keith.busch at intel.com
Wed Jan 6 07:18:36 PST 2016


On Wed, Jan 06, 2016 at 02:53:22PM +0800, Ming Lei wrote:
> On Wed, Jan 6, 2016 at 2:29 PM, Ming Lei <tom.leiming at gmail.com> wrote:
> >
> > bvec_iter_advance() can split anywhere, but the splitted bios may
> > cross one same bvec, which may cause trouble, 

Cross? One starts where the other starts. Could you please explain what's
wrong?

> > for example,
> > BIOVEC_PHYS_MERGEABLE() may not work well and
> > blk_phys_contig_segment() too.

Could you please explain why it may not work well? I have no idea what
concern you have with BIOVEC_PHYS_MERGEABLE in this case.

The only place blk_phys_contig_segment is called from is
ll_merge_requests, and the first req of the split bio wouldn't even go
through here because it's marked REQ_NOMERGE.

> blk_rq_map_sg() isn't ready for splitting in the middle of bvec too.

Could you please explain? It just uses the bio iterator, which I'm pretty
sure is not broken.



More information about the Linux-nvme mailing list