On 05.12.23 20:50, Filipe Manana wrote: > > Just one more thing, and sorry I didn't notice before. All the tests fail > when running with compression enabled, for example: Well yeah this is kind of obvious why it happens (now that I see it). I'll skip the tests in case of enabled compression. > Also, they all fail when the free space tree is disabled, like this: > > root 19:45:30 /home/fdmanana/git/hub/xfstests > MKFS_OPTIONS="-O > ^free-space-tree" ./check btrfs/304 > FSTYP -- btrfs > PLATFORM -- Linux/x86_64 debian0 6.7.0-rc3-btrfs-next-143+ #1 SMP > PREEMPT_DYNAMIC Mon Dec 4 11:01:37 WET 2023 > MKFS_OPTIONS -- -O ^free-space-tree /dev/sdb > MOUNT_OPTIONS -- /dev/sdb /home/fdmanana/btrfs-tests/scratch_1 > > btrfs/304 1s ... - output mismatch (see > /home/fdmanana/git/hub/xfstests/results//btrfs/304.out.bad) > --- tests/btrfs/304.out 2023-12-05 19:34:01.040411746 +0000 > +++ /home/fdmanana/git/hub/xfstests/results//btrfs/304.out.bad > 2023-12-05 19:45:36.242621419 +0000 > @@ -15,6 +15,156 @@ > item 0 key (XXXXXX RAID_STRIPE 4096) itemoff XXXXX itemsize 24 > encoding: RAID0 > stripe 0 devid 1 physical XXXXXXXXX > + item 1 key (XXXXXX RAID_STRIPE 65536) itemoff XXXXX itemsize 24 > + encoding: RAID0 > + stripe 0 devid 1 physical XXXXXXXXX > + item 2 key (XXXXXX RAID_STRIPE 65536) itemoff XXXXX itemsize 24 > ... > (Run 'diff -u /home/fdmanana/git/hub/xfstests/tests/btrfs/304.out > /home/fdmanana/git/hub/xfstests/results//btrfs/304.out.bad' to see > the entire diff) > Ran: btrfs/304 > Failures: btrfs/304 > Failed 1 of 1 tests OK I'll investigate why this happens. > > And with nodatacow, only one of them fails: > > root 19:46:16 /home/fdmanana/git/hub/xfstests > MOUNT_OPTIONS="-o > nodatacow" ./check btrfs/304 btrfs/305 btrfs/306 btrfs/307 btrfs/308 > FSTYP -- btrfs > PLATFORM -- Linux/x86_64 debian0 6.7.0-rc3-btrfs-next-143+ #1 SMP > PREEMPT_DYNAMIC Mon Dec 4 11:01:37 WET 2023 > MKFS_OPTIONS -- /dev/sdb > MOUNT_OPTIONS -- -o nodatacow /dev/sdb /home/fdmanana/btrfs-tests/scratch_1 > > btrfs/304 1s ... 1s > btrfs/305 1s ... 1s > btrfs/306 1s ... 1s > btrfs/307 1s ... 1s > btrfs/308 0s ... - output mismatch (see > /home/fdmanana/git/hub/xfstests/results//btrfs/308.out.bad) > --- tests/btrfs/308.out 2023-12-05 19:37:38.379355089 +0000 > +++ /home/fdmanana/git/hub/xfstests/results//btrfs/308.out.bad > 2023-12-05 19:46:33.716457540 +0000 > @@ -28,9 +28,6 @@ > item 3 key (XXXXXX RAID_STRIPE 32768) itemoff XXXXX itemsize 24 > encoding: RAID0 > stripe 0 devid 1 physical XXXXXXXXX > - item 4 key (XXXXXX RAID_STRIPE 8192) itemoff XXXXX itemsize 24 > - encoding: RAID0 > - stripe 0 devid 1 physical XXXXXXXXX > total bytes XXXXXXXX > ... > (Run 'diff -u /home/fdmanana/git/hub/xfstests/tests/btrfs/308.out > /home/fdmanana/git/hub/xfstests/results//btrfs/308.out.bad' to see > the entire diff) > Ran: btrfs/304 btrfs/305 btrfs/306 btrfs/307 btrfs/308 > Failures: btrfs/308 > Failed 1 of 5 tests > > For the compression, we can just add a "_require_no_compress". > We should also skip them when free space tree is not enabled or > nodatacow is enabled for 308 (don't recall if we already have helpers > for that). > > Other than that, everything looks good to me. I'm actually thinking of making RST and nodatacow mutually exclusive, as nodatacow re-introduces a risk for a RAID write hole.