On Wed, Jul 23, 2025 at 11:42 AM Joanne Koong joannelkoong@gmail.com wrote:
On Wed, Jul 23, 2025 at 7:46 AM Darrick J. Wong djwong@kernel.org wrote:
[cc Joanne]
On Wed, Jul 23, 2025 at 05:14:28PM +0530, Naresh Kamboju wrote:
Regressions found while running LTP msync04 tests on qemu-arm64 running Linux next-20250721, next-20250722 and next-20250723 with 16K and 64K page size enabled builds.
CONFIG_ARM64_64K_PAGES=y ( kernel warning as below ) CONFIG_ARM64_16K_PAGES=y ( kernel warning as below )
No warning noticed with 4K page size. CONFIG_ARM64_4K_PAGES=y works as expected
You might want to cc Joanne since she's been working on large folio support in fuse.
First seen on the tag next-20250721. Good: next-20250718 Bad: next-20250721 to next-20250723
Thanks for the report. Is there a link to the script that mounts the fuse server for these tests? I'm curious whether this was mounted as a fuseblk filesystem.
Regression Analysis:
- New regression? Yes
- Reproducibility? Yes
Test regression: next-20250721 arm64 16K and 64K page size WARNING fs fuse file.c at fuse_iomap_writeback_range
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
## Test log ------------[ cut here ]------------ [ 343.828105] WARNING: fs/fuse/file.c:2146 at fuse_iomap_writeback_range+0x478/0x558 [fuse], CPU#0: msync04/4190
WARN_ON_ONCE(len & (PAGE_SIZE - 1));
/me speculates that this might be triggered by an attempt to write back some 4k fsblock within a 16/64k base page?
I think this can happen on 4k base pages as well actually. On the iomap side, the length passed is always block-aligned and in fuse, we set blkbits to be PAGE_SHIFT so theoretically block-aligned is always page-aligned, but I missed that if it's a "fuseblk" filesystem, that isn't true and the blocksize is initialized to a default size of 512 or whatever block size is passed in when it's mounted.
I'll send out a patch to remove this line. It doesn't make any difference for fuse_iomap_writeback_range() logic whether len is page-aligned or not; I had added it as a sanity-check against sketchy ranges.
https://lore.kernel.org/linux-fsdevel/20250723230850.2395561-1-joannelkoong@... is the patch for removing this