LTP syscalls swapon01, swapon02, swapon03, swapoff01 and swapoff02 test failing on 16K and 64K page arm64 devices and passed with default 4K page size.
These failures are noticed on Linux next and mainline master (v6.17).
This test failed on 16K page size builds and 64K page size builds. * CONFIG_ARM64_64K_PAGES=y * CONFIG_ARM64_16K_PAGES=y
First seen on next-20250821 Good: next-20250820 Bad: next-20250821 ..next-20250929
Regression Analysis: - New regression? yes - Reproducibility? yes
Test regression: LTP swapon/off 16K and 64K page size LTP libswap.c:230: TFAIL: swapon() on fuse failed: EINVAL (22)
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
Anders, bisected this on the Linux next and found the, # first bad commit: [bd24d2108e9c8459d2c9f3d6d910b0053887df57] fuse: fix fuseblk i_blkbits for iomap partial writes
## Test logs ### swapon01
libswap.c:230: TFAIL: swapon() on fuse failed: EINVAL (22) swapon01.c:39: TINFO: create a swapfile size of 128 megabytes (MB) swapon01.c:25: TFAIL: tst_syscall(__NR_swapon, SWAP_FILE, 0) failed: EINVAL (22)
### swapon02
Windows will not be able to boot from this device. tst_test.c:1229: TINFO: Mounting /dev/loop0 to /tmp/LTP_swaybkEDa/mntpoint fstyp=ntfs flags=0 tst_test.c:1229: TINFO: Trying FUSE... libswap.c:198: TINFO: create a swapfile size of 1 megabytes (MB) tst_ioctl.c:26: TINFO: FIBMAP ioctl is supported libswap.c:230: TFAIL: swapon() on fuse failed: EINVAL (22) swapon02.c:52: TINFO: create a swapfile size of 1 megabytes (MB) swapon02.c:53: TINFO: create a swapfile size of 1 megabytes (MB) swapon02.c:56: TWARN: swapon(alreadyused) failed: EINVAL (22) swapon02.c:73: TPASS: swapon(2) fail with Path does not exist : ENOENT (2) swapon02.c:73: TPASS: swapon(2) fail with Invalid path : EINVAL (22) swapon02.c:73: TPASS: swapon(2) fail with Permission denied : EPERM (1) swapon02.c:73: TFAIL: swapon(2) fail with File already used expected EBUSY: EINVAL (22)
### swapon03
tst_ioctl.c:26: TINFO: FIBMAP ioctl is supported libswap.c:230: TFAIL: swapon() on fuse failed: EINVAL (22) tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz' tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz' tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz' tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz' swapon03.c:51: TINFO: create a swapfile size of 1 megabytes (MB) swapon03.c:54: TFAIL: swapon(filename, 0) failed: EINVAL (22) swapon03.c:51: TINFO: create a swapfile size of 1 megabytes (MB) swapon03.c:54: TFAIL: swapon(filename, 0) failed: EINVAL (22) swapon03.c:51: TINFO: create a swapfile size of 1 megabytes (MB) swapon03.c:54: TFAIL: swapon(filename, 0) failed: EINVAL (22)
### swapoff01
libswap.c:230: TFAIL: swapon() on fuse failed: EINVAL (22) swapoff01.c:44: TINFO: create a swapfile with 65536 block numbers swapoff01.c:44: TCONF: Insufficient disk space to create swap file tst_test.c:1888: TINFO: === Testing on tmpfs === tst_test.c:1217: TINFO: Skipping mkfs for TMPFS filesystem tst_test.c:1193: TINFO: Limiting tmpfs size to 350MB tst_test.c:1229: TINFO: Mounting ltp-tmpfs to /tmp/LTP_swahnekXb/mntpoint fstyp=tmpfs flags=0 libswap.c:198: TINFO: create a swapfile size of 1 megabytes (MB) tst_ioctl.c:21: TINFO: FIBMAP ioctl is NOT supported: EINVAL (22) libswap.c:228: TCONF: Swapfile on tmpfs not implemented Summary: passed 0 failed 1 broken 0 skipped 7
### swapoff02
st_ioctl.c:26: TINFO: FIBMAP ioctl is supported libswap.c:230: TFAIL: swapon() on fuse failed: EINVAL (22) swapoff02.c:88: TINFO: create a swapfile size of 1 megabytes (MB) swapoff02.c:53: TPASS: swapoff(2) expected failure; Got errno - ENOENT : path does not exist swapoff02.c:53: TPASS: swapoff(2) expected failure; Got errno - EINVAL : Invalid file swapoff02.c:53: TPASS: swapoff(2) expected failure; Got errno - EPERM : Permission denied tst_test.c:1888: TINFO: === Testing on tmpfs === tst_test.c:1217: TINFO: Skipping mkfs for TMPFS filesystem tst_test.c:1193: TINFO: Limiting tmpfs size to 32MB tst_test.c:1229: TINFO: Mounting ltp-tmpfs to /tmp/LTP_swaXbUs2F/mntpoint fstyp=tmpfs flags=0 libswap.c:198: TINFO: create a swapfile size of 1 megabytes (MB) tst_ioctl.c:21: TINFO: FIBMAP ioctl is NOT supported: EINVAL (22) libswap.c:228: TCONF: Swapfile on tmpfs not implemented Summary: passed 18 failed 1 broken 0 skipped 1
Here I am sharing mainline tree and logs.
## Source * Kernel version: 6.17.0 * Git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git * Git describe: v6.17 * Git commit: e5f0a698b34ed76002dc5cff3804a61c80233a7a * Architectures: arm64 * Toolchains: gcc-13 * Kconfigs: lkftconfig+CONFIG_ARM64_64K_PAGES=y * Kconfigs: lkftconfig+CONFIG_ARM64_16K_PAGES=y
## Build * Test log arm64: https://qa-reports.linaro.org/api/testruns/30048876/log_file/ * Test log LAVA: https://lkft.validation.linaro.org/scheduler/job/8468115#L28598 * Test details: https://regressions.linaro.org/lkft/linux-mainline-master/v6.17/ltp-syscalls... * Build plan: https://tuxapi.tuxsuite.com/v1/groups/linaro/projects/lkft/tests/33LezR2rctM... * Build link: https://storage.tuxsuite.com/public/linaro/lkft/builds/33Ley5LZz1crQhBtb1KXJ... * Kernel config: https://storage.tuxsuite.com/public/linaro/lkft/builds/33Ley5LZz1crQhBtb1KXJ...
-- Linaro LKFT