Re: [PATCH 0/2] fsdax,xfs: fix warning messages

Darrick J. Wong
2022-11-28T23:08:22Z

On Mon, Nov 28, 2022 at 10:16:23AM +0800, Shiyang Ruan wrote:
>
>
> 在 2022/11/28 2:38, Darrick J. Wong 写道:
> > On Thu, Nov 24, 2022 at 02:54:52PM +0000, Shiyang Ruan wrote:
> > > Many testcases failed in dax+reflink mode with warning message in dmesg.
> > > This also effects dax+noreflink mode if we run the test after a
> > > dax+reflink test. So, the most urgent thing is solving the warning
> > > messages.
> > >
> > > Patch 1 fixes some mistakes and adds handling of CoW cases not
> > > previously considered (srcmap is HOLE or UNWRITTEN).
> > > Patch 2 adds the implementation of unshare for fsdax.
> > >
> > > With these fixes, most warning messages in dax_associate_entry() are
> > > gone. But honestly, generic/388 will randomly failed with the warning.
> > > The case shutdown the xfs when fsstress is running, and do it for many
> > > times. I think the reason is that dax pages in use are not able to be
> > > invalidated in time when fs is shutdown. The next time dax page to be
> > > associated, it still remains the mapping value set last time. I'll keep
> > > on solving it.
> > >
> > > The warning message in dax_writeback_one() can also be fixed because of
> > > the dax unshare.
> >
> > This cuts down the amount of test failures quite a bit, but I think
> > you're still missing a piece or two -- namely the part that refuses to
> > enable S_DAX mode on a reflinked file when the inode is being loaded
> > from disk. However, thank you for fixing dax.c, because that was the
> > part I couldn't figure out at all. :)
>
> I didn't include it[1] in this patchset...
>
> [1] https://lore.kernel.org/linux-xfs/1663234002-17-1-git-send-email-ruansy.fnst@fujitsu.com/

Oh, ok. I'll pull that one in. All the remaining test failures seem to
be related to inode flag states or tests that trip over the lack of
delalloc on dax+reflink files.

--D

>
> --
> Thanks,
> Ruan.
>
> >
> > --D
> >
> > >
> > > Shiyang Ruan (2):
> > > fsdax,xfs: fix warning messages at dax_[dis]associate_entry()
> > > fsdax,xfs: port unshare to fsdax
> > >
> > > fs/dax.c | 166 ++++++++++++++++++++++++++++++-------------
> > > fs/xfs/xfs_iomap.c | 6 +-
> > > fs/xfs/xfs_reflink.c | 8 ++-
> > > include/linux/dax.h | 2 +
> > > 4 files changed, 129 insertions(+), 53 deletions(-)
> > >
> > > --
> > > 2.38.1
> > >