Re: [PATCH V14 00/18] block: support multi-page bvec

From: Ming Lei
Date: Mon Jan 21 2019 - 21:02:27 EST

On Mon, Jan 21, 2019 at 01:43:21AM -0800, Sagi Grimberg wrote:
> > V14:
> > - drop patch(patch 4 in V13) for renaming bvec helpers, as suggested by Jens
> > - use mp_bvec_* as multi-page bvec helper name
> > - fix one build issue, which is caused by missing one converion of
> > bio_for_each_segment_all in fs/gfs2
> > - fix one 32bit ARCH specific issue caused by segment boundary mask
> > overflow
> Hey Ming,
> So is nvme-tcp also affected here? The only point where I see nvme-tcp
> can be affected is when initializing a bvec iter using bio_segments() as
> everywhere else we use iters which should transparently work..
> I see that loop was converted, does it mean that nvme-tcp needs to
> call something like?
> --
> bio_for_each_mp_bvec(bv, bio, iter)
> nr_bvecs++;

bio_for_each_segment()/bio_segments() still works, just not as efficient
as bio_for_each_mp_bvec() given each multi-page bvec(very similar with scatterlist)
is returned in each loop.

I don't look at nvme-tcp code yet. But if nvme-tcp supports this way,
it can benefit from bio_for_each_mp_bvec().