Re: bio_vec, bv_page and folios

From: Matthew Wilcox
Date: Tue Jan 02 2024 - 05:24:42 EST


On Tue, Jan 02, 2024 at 10:03:58AM +0000, David Howells wrote:
> Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> > On Tue, Jan 02, 2024 at 08:56:46AM +0000, David Howells wrote:
> > > Hi Christoph, Willy,
> > >
> > > Will bv_page in struct bio_vec ever become a folio pointer rather than I page
> > > pointer? I'm guessing not as it still presumably needs to be able to point to
> > > non-folio pages.
> >
> > My plan for bio_vec is that it becomes phyr -- a physical address +
> > length. No more page or folio reference.
>
> Interesting... What does that mean for those places that currently use
> bv_page as a place to stash a pointer to the page and use it to clean up the
> page later?

I don't intend to get rid of bio_for_each_folio_all() or bio_add_page()
for example. It's just a phys_to_page() away. The advantage is that
we wouldn't need a struct page to do I/O to a physical address.