Hi, On Mon, Mar 21, 2016 at 11:55 PM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > On Mon, Mar 07, 2016 at 04:44:49PM +0800, Ming Lei wrote: >> Just create one branch for multipage bvecs: >> >> http://kernel.ubuntu.com/git/ming/linux.git/log/?h=v4.5-rc-multipage-bvecs-early > BTW, two bugs are fixed in the folllowing branch: http://kernel.ubuntu.com/git/ming/linux.git/log/?h=v4.5-rc-block-multipage-bvecs-early.1-ext4-scsi then ext4 over virtio-blk/virtio-scsi works with multipage bvecs now. > Can you send out a few of the prep patches ASAP? E.g. the > BIO_MAX_SECTORS and BIO_MAX_SIZE removal. OK. > > I really don't like the _mp / _sp naming for the iteratators, > I think they should have a _page and _segment in the name instead, Currently I don't want to introduce extra changes, that is why I use _mp / _sp naming, for example, bio_for_each_segment() actually returns 'page'. So if we introduce _page & _segment, all the current callers have to be changed. Maybe we can delay that into late stage. > and preferably done in a way that breaks compilation for old code, > e.g. never reuse the old names. > > I also think it would be really useful to convert bio bounce and raid1 > (and generally everything bio based) to deal with multi-page biovecs > instead of making it opt-in. For bio bounce, it isn't doable to deal with multipage because allocating multi-pages for bouncing often fails. > > >> 1) converting bio_for_each_segment() to *_rd() and *_wt() >> >> - this change should be a mechanical thing > > I don't think the short prefix naming is very useful. I'd also > like to understand where the need for thee comes from, as this > didn't appear in Kent's patches. Better documentation of them > would be very useful. I still hate the short prefix naming, but: bio_for_each_segment() returns pointer to bvec in the .bi_io_vec directly, which looks ugly, :-( Most of users just read the bvec by this way, but some old users still need to change the bvec. So for users who want to change the bvec, the standard bio iterator helpers can't work becasue the bvec is always copied to local variable. That is why I introduce the prefix naming. But this change is just a mechanical conversion. With a new iterator variable, it can be very flexible. > >> >> 2) cleanup on direct access to .bi_io_vec and .bi_vcnt from btrfs, >> dm, bcache, ... >> >> - this kind of work may take some time to do >> - most of them are in btrfs > > Removing access to these from outside the core block code would be > a very useful patchset on it's own, so I' dsuggest to finish that > before continuing on the rest of the series. Yeah, most of change should be in btrfs, and need to finish first. Other block driver's change(raid, ...) can be handled by QUEUE_FLAG_NO_MP first. Thanks, Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html