Re: [PATCH v8 10/10] mm: Renumber FOLL_PIN and FOLL_GET down

From: Jason Gunthorpe
Date: Tue Jan 24 2023 - 08:13:38 EST


On Mon, Jan 23, 2023 at 07:11:42PM -0800, John Hubbard wrote:
> On 1/23/23 19:08, John Hubbard wrote:
> > On 1/23/23 09:30, David Howells wrote:
> > > Renumber FOLL_PIN and FOLL_GET down to bit 0 and 1 respectively so that
> > > they are coincidentally the same as BIO_PAGE_PINNED and BIO_PAGE_REFFED and
> > > also so that they can be stored in the bottom two bits of a page pointer
> > > (something I'm looking at for zerocopy socket fragments).
> > >
> > > (Note that BIO_PAGE_REFFED should probably be got rid of at some point,
> > > hence why FOLL_PIN is at 0.)
> > >
> > > Also renumber down the other FOLL_* flags to close the gaps.
> >
> > Should we also get these sorted into internal-to-mm and public sets?
> > Because Jason (+Cc) again was about to split them apart into
> > mm/internal.h [1] and that might make that a little cleaner.
>
> I see that I omitted both Jason's Cc and the reference, so I'll resend.
> Sorry for the extra noise.
>
> [1] https://lore.kernel.org/all/fcdb3294-3740-a0e0-b115-12842eb0696d@xxxxxxxxxx/

Yeah, I already wrote a similar patch, using the 1<< notation,
splitting the internal/external, and rebasing on the move to
mm_types.. I can certainly drop that patch if we'd rather do this.

Though, I'm not so keen on using FOLL_ internal flags inside the block
layer.. Can you stick with the BIO versions of these?

Jason