[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