On 30/9/24 00:50, Qu Wenruo wrote: > > > [FALSE ALERTS] > If the system has a page size larger than 4K, and the fs block size > matches the page size, test case generic/563 will fail: > > --- tests/generic/563.out 2024-04-25 18:13:45.178550333 +0930 > +++ /home/adam/xfstests-dev/results//generic/563.out.bad 2024-09-30 09:09:16.155312379 +0930 > @@ -3,7 +3,8 @@ > read is in range > write is in range > write -> read/write > -read is in range > +read has value of 8388608 > +read is NOT in range -33792 .. 33792 > write is in range > ... > > Both Ext4 and btrfs fail with 64K block size and 64K page size > > [CAUSE] > The test case writes the 8MiB file using the default block size xfs_io > pwrite, which is 4KiB. > > Since the fs block size is 64K, such 4KiB write is unaligned inside a > block, causing the fs to read out the full page. > > Thus the pwrite will cause the fs to read out every page, resulting the > above 8MiB+ read value. > > [FIX] > Fix the test case by using the fs block size to avoid such unaligned > buffered write. > I ran generic/563 on a Raspberry Pi running 6.4 and with a 64K page size, and got a similar error: FSTYP -- btrfs PLATFORM -- Linux/aarch64 fstests-aarch64 6.4.3-arm64-g0ef0e2e48724 #61 SMP Tue Aug 6 16:51:45 BST 2024 MKFS_OPTIONS -- /dev/vdc MOUNT_OPTIONS -- /dev/vdc /mnt/scratch-dir generic/563 - output mismatch (see /root/xfstests/results//generic/563.out.bad) --- tests/generic/563.out 2024-08-05 10:33:23.000000000 -0000 +++ /root/xfstests/results//generic/563.out.bad 2024-10-04 09:35:51.433413098 -0000 @@ -3,7 +3,8 @@ read is in range write is in range write -> read/write -read is in range +read has value of 8421376 +read is NOT in range -33792 .. 33792 write is in range ... (Run 'diff -u /root/xfstests/tests/generic/563.out /root/xfstests/results//generic/563.out.bad' to see the entire diff) Ran: generic/563 Failures: generic/563 Failed 1 of 1 tests The same happens whether the btrfs volume has a sector size of 4K or 64K, and the patch doesn't seem to fix it. Mark