[LTP] [PATCH 2/3] swapon04: Add test for discard flags
Li Wang
li.wang@linux.dev
Fri Aug 28 10:47:03 CEST 2026
Hi Andrea,
> > I encountered an intermittent failure on my x86_64 platform running kernel 6.6.
> > This needs further investigation.
> >
> > tst_test.c:1986: TINFO: === Testing on xfs ===
> > tst_test.c:1291: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts=''
> > tst_test.c:1303: TINFO: Mounting /dev/loop0 to /tmp/LTP_swa4Dz6aP/mntpoint fstyp=xfs flags=0
> > tst_device.c:103: TINFO: Found free device 1 '/dev/loop1'
> > swapon04.c:170: TPASS: blocks_after == blocks_before (32768)
> > swapon04.c:168: TPASS: blocks_after <= max_header_blocks (8 <= 16)
> > swapon04.c:168: TFAIL: blocks_after (32648) > max_header_blocks (16)
> > swapon04.c:170: TPASS: blocks_after == blocks_before (32768)
> > swapon04.c:168: TPASS: blocks_after <= max_header_blocks (8 <= 16)
> > swapon04.c:170: TPASS: blocks_after == blocks_before (32768)
> > swapon04.c:170: TPASS: blocks_after == blocks_before (32768)
>
> this is interesting. Also I notice how it's hard to read the logs, so
> I need a TINFO before the checks. But technically, this could be a kernel
> bug: can you please add a sync() before stat() while we are getting the
> blocks_after? We might need to flush the cache before reading the blocks.
>
> fd = SAFE_OPEN(BACKING_FILE, O_RDONLY);
> SAFE_FSYNC(fd);
> SAFE_CLOSE(fd);
>
It doesn't work — even with the fsync() added above, the problem is
still reproducible. I agree it's likely a kernel bug, because I tried
on c10s (6.12) and c9s (5.14) and couldn't reproduce the issue there.
Only on kernel-v6.6-* fail:
# LTP_SINGLE_FS_TYPE=xfs ./swapon04 -i 100
swapon04.c:174: TPASS: blocks_after == blocks_before (32768)
swapon04.c:172: TPASS: blocks_after <= max_header_blocks (8 <= 16)
swapon04.c:174: TPASS: blocks_after == blocks_before (32768)
swapon04.c:174: TPASS: blocks_after == blocks_before (32768)
swapon04.c:174: TFAIL: blocks_after (32768) != blocks_before (65408)
swapon04.c:172: TFAIL: blocks_after (32648) > max_header_blocks (16)
...
swapon04.c:174: TPASS: blocks_after == blocks_before (32768)
swapon04.c:174: TPASS: blocks_after == blocks_before (32768)
Summary:
passed 670
failed 30
broken 0
skipped 0
warnings 0
--
Regards,
Li Wang
More information about the ltp
mailing list