On Wed, Jun 14, 2023 at 05:06:14PM +0200, Hannes Reinecke wrote: > On 6/14/23 15:53, Matthew Wilcox wrote: > > On Wed, Jun 14, 2023 at 03:17:25PM +0200, Hannes Reinecke wrote: > > > Turns out that was quite easy to fix (just remove the check in > > > set_blocksize()), but now I get this: > > > > > > SGI XFS with ACLs, security attributes, quota, no debug enabled > > > XFS (ram0): File system with blocksize 16384 bytes. Only pagesize (4096) or > > > less will currently work. > > > > What happens if you just remove this hunk: > > > > +++ b/fs/xfs/xfs_super.c > > @@ -1583,18 +1583,6 @@ xfs_fs_fill_super( > > goto out_free_sb; > > } > > > > - /* > > - * Until this is fixed only page-sized or smaller data blocks work. > > - */ > > - if (mp->m_sb.sb_blocksize > PAGE_SIZE) { > > - xfs_warn(mp, > > - "File system with blocksize %d bytes. " > > - "Only pagesize (%ld) or less will currently work.", > > - mp->m_sb.sb_blocksize, PAGE_SIZE); > > - error = -ENOSYS; > > - goto out_free_sb; > > - } > > - > > /* Ensure this filesystem fits in the page cache limits */ > > if (xfs_sb_validate_fsb_count(&mp->m_sb, mp->m_sb.sb_dblocks) || > > xfs_sb_validate_fsb_count(&mp->m_sb, mp->m_sb.sb_rblocks)) { > > Whee! That works! > > Rebased things with your memcpy_{to,from}_folio() patches, disabled that > chunk, and: > > # mount /dev/ram0 /mnt > XFS (ram0): Mounting V5 Filesystem 5cd71ab5-2d11-4c18-97dd-71708f40e551 > XFS (ram0): Ending clean mount > xfs filesystem being mounted at /mnt supports timestamps until 2038-01-19 > (0x7fffffff) > # umount /mnt > XFS (ram0): Unmounting Filesystem 5cd71ab5-2d11-4c18-97dd-71708f40e551 Mounting the filesystem doesn't mean it works. XFS metadata has laways worked with bs > ps, and mounting the filesystem only does metadata IO. It's not until you start reading/writing user data that the filesystem will start exercising the page cache.... > Great work, Matthew! > > (Now I just need to check why copying data from NFS crashes ...) .... and then we see it doesn't actually work. :) Likely you also need the large folio support in the iomap write path patches from Willy, plus whatever corner cases in iomap that still have implicit dependencies on PAGE_SIZE need to be fixed (truncate, invalidate, sub-block zeroing, etc may not be doing exactly the right thing). All you need to do now is run the BS > PS filesytems through a full fstests pass (reflink + rmap enabled, auto group), and then we can start on the real data integrity validation work. It'll need tens of billions of fsx ops run on it, days of recoveryloop testing, days of fstress based exercise, etc before we can actually enable it in XFS.... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx