Re: [PATCH 2/2] xfs: disable large folio support in xfile_create

Darrick J. Wong
2024-01-10T20:05:01Z

On Wed, Jan 10, 2024 at 09:55:15AM -0800, Darrick J. Wong wrote:
> On Wed, Jan 10, 2024 at 10:21:09AM +0100, Christoph Hellwig wrote:
> > The xfarray code will crash if large folios are force enabled using:
> >
> > echo force > /sys/kernel/mm/transparent_hugepage/shmem_enabled
> >
> > Fixing this will require a bit of an API change, and prefeably sorting out
> > the hwpoison story for pages vs folio and where it is placed in the shmem
> > API. For now use this one liner to disable large folios.
> >
> > Reported-by: Darrick J. Wong <djwong@kernel.org>
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
>
> Can someone who knows more about shmem.c than I do please review
> https://lore.kernel.org/linux-xfs/20240103084126.513354-4-hch@lst.de/
> so that I can feel slightly more confident as hch and I sort through the
> xfile.c issues?
>
> For this patch,
> Reviewed-by: Darrick J. Wong <djwong@kernel.org>

...except that I'm still getting 2M THPs even with this enabled, so I
guess either we get to fix it now, or create our own private tmpfs mount
so that we can pass in huge=never, similar to what i915 does. :(

--D

> --D
>
> > ---
> > fs/xfs/scrub/xfile.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/fs/xfs/scrub/xfile.c b/fs/xfs/scrub/xfile.c
> > index 090c3ead43fdf1..1a8d1bedd0b0dc 100644
> > --- a/fs/xfs/scrub/xfile.c
> > +++ b/fs/xfs/scrub/xfile.c
> > @@ -94,6 +94,11 @@ xfile_create(
> >
> > lockdep_set_class(&inode->i_rwsem, &xfile_i_mutex_key);
> >
> > + /*
> > + * We're not quite ready for large folios yet.
> > + */
> > + mapping_clear_large_folios(inode->i_mapping);
> > +
> > trace_xfile_create(xf);
> >
> > *xfilep = xf;
> > --
> > 2.39.2
> >
> >
>