linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [REGRESSION] generic/127 failure caused by "mm: Use folio_next_pos()"
@ 2025-11-24 19:18 Theodore Tso
  2025-11-24 19:20 ` Matthew Wilcox
  0 siblings, 1 reply; 2+ messages in thread
From: Theodore Tso @ 2025-11-24 19:18 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: linux-mm, Ext4 Developers List, linux-xfs

[-- Attachment #1: Type: text/plain, Size: 1632 bytes --]

While testing the ext4 large blocksize patches I merged in
linux-next/fs-next to pick up the mm changes needed to prevent the
warnings when allocating larger blocks with GFP_NOFAIL, and I found
some unrelated regressions with three tests, including generic/127
(the other two regressions seem unrelated to this commit; I'll bisect
them separately).

Further testing found that regression occurred somewhere between
fs-current and fs-next, and I also found that it was failing not just
for ext4, but also for ext4.  A git bisect run localized the failure
to this commit:

commit 60a70e61430b2d568bc5e96f629c5855ee159ace
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Fri Oct 24 18:08:18 2025 +0100

    mm: Use folio_next_pos()
    
    This is one instruction more efficient than open-coding folio_pos() +
    folio_size().  It's the equivalent of (x + y) << z rather than
    x << z + y << z.
    
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Link: https://patch.msgid.link/20251024170822.1427218-11-willy@infradead.org

I then checked out linux-next (aka linux-next/master) and verified
that the problem was reproducible there, using

kvm-xfstests -c ext4/4k generic/127 --fail-loop-count 0 --kernel-build

And then when I reverted commit 60a70e61430b, the test passed.  I also
checked and found that this commit was also causing generic/127 to
fail for xfs:

kvm-xfstests -c xfs/4k generic/127 --fail-loop-count 0 --kernel-build

And, with the commit reverted the problem went away.

The test logs for ext4 and xfs are attached.  Willy, could you take a
look?  Many thanks!!

							- Ted


[-- Attachment #2: ext4-generic-127.log --]
[-- Type: text/plain, Size: 4948 bytes --]

^[c^[[?7l^[[2J^[[0mSeaBIOS (version 1.17.0-debian-1.17.0-1)
Booting from ROM..^[c^[[?7l^[[2J^[[!p^[]104\a^[[?7h[^[[0;1;31mFAILED^[[0m] Failed to start ^[[0;1;39mnbd-server.service^[[0m - Network Block Device server.
CMDLINE: "-c ext4/4k generic/127 --fail-loop-count 0"
KERNEL: kernel	6.18.0-rc6-next-20251124-xfstests #20 SMP PREEMPT_DYNAMIC Mon Nov 24 14:04:48 EST 2025 x86_64
FSTESTVER: blktests	4badb27 (Fri, 31 Oct 2025 19:53:27 +0900)
FSTESTVER: fio		fio-3.41 (Fri, 5 Sep 2025 14:21:17 -0600)
FSTESTVER: fsverity	v1.7 (Tue, 4 Nov 2025 17:28:17 -0800)
FSTESTVER: ima-evm-utils	v1.5 (Mon, 6 Mar 2023 07:40:07 -0500)
FSTESTVER: libaio  	libaio-0.3.108-82-gb8eadc9 (Thu, 2 Jun 2022 13:33:11 +0200)
FSTESTVER: ltp		20250930 (Tue, 30 Sep 2025 13:53:45 +0200)
FSTESTVER: quota		v4.05-77-g22ff3d9 (Tue, 2 Sep 2025 08:12:02 -0400)
FSTESTVER: util-linux	v2.41.2 (Mon, 22 Sep 2025 12:56:34 +0200)
FSTESTVER: xfsprogs	v6.17.0 (Mon, 20 Oct 2025 16:49:00 +0200)
FSTESTVER: xfstests	v2025.11.04-12-g64e3dbda7 (Thu, 13 Nov 2025 19:58:03 -0500)
FSTESTVER: xfstests-bld	gce-xfstests-202504292206-33-g3844cb58 (Thu, 13 Nov 2025 21:05:49 -0500)
FSTESTVER: zz_build-distro	trixie
FSTESTCFG: "ext4/4k"
FSTESTSET: "generic/127"
FSTESTEXC: ""
FSTESTOPT: "fail_loop_count 0 aex"
MNTOPTS: ""
CPUS: "2"
MEM: "1969.56"
               total        used        free      shared  buff/cache   available
Mem:            1969         208        1749           0         143        1760
Swap:              0           0           0
BEGIN TEST 4k (1 test): Ext4 4k block Mon Nov 24 14:05:27 EST 2025
DEVICE: /dev/vdb
EXT_MKFS_OPTIONS: -b 4096
EXT_MOUNT_OPTIONS: -o block_validity
FSTYP         -- ext4
PLATFORM      -- Linux/x86_64 kvm-xfstests 6.18.0-rc6-next-20251124-xfstests #20 SMP PREEMPT_DYNAMIC Mon Nov 24 14:04:48 EST 2025
MKFS_OPTIONS  -- -F -q -b 4096 /dev/vdc
MOUNT_OPTIONS -- -o acl,user_xattr -o block_validity /dev/vdc /vdc

generic/127  31s ...  [14:05:28][    3.901891] run fstests generic/127 at 2025-11-24 14:05:28
[    4.092040] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (42) finished: extent logical block 25, len 15; IO logical block 25, len 8
[    4.101284] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (47) finished: extent logical block 25, len 15; IO logical block 25, len 8
[    4.125984] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (47) finished: extent logical block 35, len 9; IO logical block 39, len 1
[    4.129140] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (47) finished: extent logical block 35, len 4; IO logical block 36, len 3
[    4.181406] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (42) finished: extent logical block 3, len 14; IO logical block 8, len 9
[    4.194278] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (42) finished: extent logical block 31, len 11; IO logical block 31, len 10
[    4.198459] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (47) finished: extent logical block 3, len 14; IO logical block 8, len 9
[    4.207676] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (50) finished: extent logical block 25, len 15; IO logical block 25, len 8
[    4.217111] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (47) finished: extent logical block 31, len 11; IO logical block 31, len 10
[    4.221635] EXT4-fs warning (device vdb): ext4_convert_unwritten_extents_endio:3774: Inode (41) finished: extent logical block 25, len 15; IO logical block 25, len 8
 [14:05:39]- output mismatch (see /results/ext4/results-4k/generic/127.out.bad)
    --- tests/generic/127.out	2025-11-13 21:05:49.000000000 -0500
    +++ /results/ext4/results-4k/generic/127.out.bad	2025-11-24 14:05:39.225714867 -0500
    @@ -1,7 +1,34117 @@
     QA output created by 127
    +/root/xfstests/ltp/fsx -q -l 262144 -o 65536 -S 191110531 -N 100000 -R -W fsx_std_nommap
    +READ BAD DATA: offset = 0x11303, size = 0xf7b0, fname = /vdb/fsx_std_nommap
    +OFFSET      GOOD    BAD     RANGE
    +0x14000     0x0000  0xfc9f  0x0
    +operation# (mod 256) for the bad data may be 252
    +0x14001     0x0000  0x9ffc  0x1
    ...
    (Run 'diff -u /root/xfstests/tests/generic/127.out /results/ext4/results-4k/generic/127.out.bad'  to see the entire diff)
Ran: generic/127
Failures: generic/127
Failed 1 of 1 tests
Xunit report: /results/ext4/results-4k/result.xml

               total        used        free      shared  buff/cache   available
Mem:            1969         206        1822           0          28        1762
Swap:              0           0           0
END TEST: Ext4 4k block Mon Nov 24 14:05:39 EST 2025

[-- Attachment #3: xfs-generic-127.log --]
[-- Type: text/plain, Size: 7436 bytes --]

^[c^[[?7l^[[2J^[[0mSeaBIOS (version 1.17.0-debian-1.17.0-1)
Booting from ROM..^[c^[[?7l^[[2J^[[!p^[]104\a^[[?7h[^[[0;1;31mFAILED^[[0m] Failed to start ^[[0;1;39mnbd-server.service^[[0m - Network Block Device server.
CMDLINE: "-c xfs/4k generic/127 --fail-loop-count 0"
KERNEL: kernel	6.18.0-rc6-next-20251124-xfstests #20 SMP PREEMPT_DYNAMIC Mon Nov 24 14:04:48 EST 2025 x86_64
FSTESTVER: blktests	4badb27 (Fri, 31 Oct 2025 19:53:27 +0900)
FSTESTVER: fio		fio-3.41 (Fri, 5 Sep 2025 14:21:17 -0600)
FSTESTVER: fsverity	v1.7 (Tue, 4 Nov 2025 17:28:17 -0800)
FSTESTVER: ima-evm-utils	v1.5 (Mon, 6 Mar 2023 07:40:07 -0500)
FSTESTVER: libaio  	libaio-0.3.108-82-gb8eadc9 (Thu, 2 Jun 2022 13:33:11 +0200)
FSTESTVER: ltp		20250930 (Tue, 30 Sep 2025 13:53:45 +0200)
FSTESTVER: quota		v4.05-77-g22ff3d9 (Tue, 2 Sep 2025 08:12:02 -0400)
FSTESTVER: util-linux	v2.41.2 (Mon, 22 Sep 2025 12:56:34 +0200)
FSTESTVER: xfsprogs	v6.17.0 (Mon, 20 Oct 2025 16:49:00 +0200)
FSTESTVER: xfstests	v2025.11.04-12-g64e3dbda7 (Thu, 13 Nov 2025 19:58:03 -0500)
FSTESTVER: xfstests-bld	gce-xfstests-202504292206-33-g3844cb58 (Thu, 13 Nov 2025 21:05:49 -0500)
FSTESTVER: zz_build-distro	trixie
FSTESTCFG: "xfs/4k"
FSTESTSET: "generic/127"
FSTESTEXC: ""
FSTESTOPT: "fail_loop_count 0 aex"
MNTOPTS: ""
CPUS: "2"
MEM: "1969.56"
               total        used        free      shared  buff/cache   available
Mem:            1969         212        1745           0         143        1756
Swap:              0           0           0
meta-data=/dev/vdd               isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=1
         =                       exchange=0   metadir=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1, parent=0
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
         =                       rgcount=0    rgsize=0 extents
         =                       zoned=0      start=0 reserved=0
Discarding blocks...Done.
BEGIN TEST 4k (1 test): XFS 4k block Mon Nov 24 14:06:31 EST 2025
DEVICE: /dev/vdd
XFS_MKFS_OPTIONS: -bsize=4096
XFS_MOUNT_OPTIONS: 
FSTYP         -- xfs (debug)
PLATFORM      -- Linux/x86_64 kvm-xfstests 6.18.0-rc6-next-20251124-xfstests #20 SMP PREEMPT_DYNAMIC Mon Nov 24 14:04:48 EST 2025
MKFS_OPTIONS  -- -f -bsize=4096 /dev/vdc
MOUNT_OPTIONS -- /dev/vdc /vdc

generic/127  31s ...  [14:06:33][    6.886269] run fstests generic/127 at 2025-11-24 14:06:33
[    7.333668] vdd: writeback error on inode 137, offset 208896, sector 2622528
[    7.338078] XFS (vdd): Corruption of in-memory data (0x8) detected at xfs_trans_mod_sb+0x2b6/0x370 (fs/xfs/xfs_trans.c:353).  Shutting down filesystem.
[    7.341384] XFS (vdd): Please unmount the filesystem and rectify the problem(s)
[    7.342570] XFS: Assertion failed: tp->t_blk_res >= tp->t_blk_res_used, file: fs/xfs/xfs_trans.c, line: 120
[    7.344123] ------------[ cut here ]------------
[    7.344851] WARNING: fs/xfs/xfs_message.c:104 at assfail+0x33/0x3a, CPU#1: kworker/1:0/23
[    7.346172] CPU: 1 UID: 0 PID: 23 Comm: kworker/1:0 Not tainted 6.18.0-rc6-next-20251124-xfstests #20 PREEMPT(none) 
[    7.347861] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014
[    7.349936] Workqueue: xfs-conv/vdd xfs_end_io
[    7.350759] RIP: 0010:assfail+0x33/0x3a
[    7.351341] Code: 49 89 d0 41 89 c9 48 c7 c2 d8 18 a8 82 48 89 f1 48 89 fe 48 c7 c7 e4 0c b0 82 e8 b8 fd ff ff 80 3d 59 6d ba 01 00 74 02 0f 0b <0f> 0b e9 41 da ed ff 48 8d 45 10 48 89 e2 48 89 de 4c 89 34 24 48
[    7.354327] RSP: 0018:ffa00000000cbc00 EFLAGS: 00010246
[    7.355161] RAX: 0000000000000000 RBX: ff11000011dafbc8 RCX: 000000007fffffff
[    7.356328] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff82b00ce4
[    7.357522] RBP: ff11000011dafd98 R08: 0000000000000000 R09: 000000000000000a
[    7.358681] R10: 000000000000000a R11: 0fffffffffffffff R12: 000000050002f3f8
[    7.359835] R13: 0000000000039a46 R14: ff11000011dafe68 R15: ff11000011dafe68
[    7.361031] FS:  0000000000000000(0000) GS:ff110000fa430000(0000) knlGS:0000000000000000
[    7.362325] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    7.363273] CR2: 00007fbb37aaa350 CR3: 0000000002c2e003 CR4: 0000000000771ef0
[    7.364422] PKRU: 55555554
[    7.364872] Call Trace:
[    7.365309]  <TASK>
[    7.365671]  xfs_trans_dup+0x16e/0x1c0
[    7.366287]  xfs_trans_roll+0x2e/0xd0
[    7.366906]  xfs_defer_trans_roll+0x53/0x130
[    7.367608]  ? srso_alias_return_thunk+0x5/0xfbef5
[    7.368393]  xfs_defer_finish_noroll+0x2cd/0x500
[    7.369419]  xfs_trans_commit+0x4c/0x70
[    7.370486]  ? xfs_iomap_write_unwritten+0x180/0x320
[    7.371227]  xfs_iomap_write_unwritten+0xce/0x320
[    7.371932]  xfs_end_ioend+0x207/0x2b0
[    7.372517]  xfs_end_io+0xb5/0x100
[    7.373046]  process_one_work+0x18c/0x360
[    7.373697]  worker_thread+0x268/0x3b0
[    7.374265]  ? __pfx_worker_thread+0x10/0x10
[    7.374910]  kthread+0x10a/0x230
[    7.375422]  ? __pfx_kthread+0x10/0x10
[    7.375989]  ? __pfx_kthread+0x10/0x10
[    7.376577]  ret_from_fork+0x95/0x110
[    7.377142]  ? __pfx_kthread+0x10/0x10
[    7.377709]  ret_from_fork_asm+0x1a/0x30
[    7.378303]  </TASK>
[    7.378663] ---[ end trace 0000000000000000 ]---
[    7.379365] vdd: writeback error on inode 132, offset 184320, sector 888
_check_xfs_filesystem: filesystem on /dev/vdd has dirty log
(see /results/xfs/results-4k/generic/127.full for details)
_check_xfs_filesystem: filesystem on /dev/vdd is inconsistent (r)
(see /results/xfs/results-4k/generic/127.full for details)
Trying to repair broken TEST_DEV file system
_check_dmesg: something found in dmesg (see /results/xfs/results-4k/generic/127.dmesg)
 [14:06:34]- output mismatch (see /results/xfs/results-4k/generic/127.out.bad)
    --- tests/generic/127.out	2025-11-13 21:05:49.000000000 -0500
    +++ /results/xfs/results-4k/generic/127.out.bad	2025-11-24 14:06:34.037856472 -0500
    @@ -1,7 +1,25950 @@
     QA output created by 127
    -All 100000 operations completed A-OK!
    -All 100000 operations completed A-OK!
    -All 100000 operations completed A-OK!
    -All 100000 operations completed A-OK!
    -All 100000 operations completed A-OK!
    -All 100000 operations completed A-OK!
    ...
    (Run 'diff -u /root/xfstests/tests/generic/127.out /results/xfs/results-4k/generic/127.out.bad'  to see the entire diff)
Ran: generic/127
Failures: generic/127
Failed 1 of 1 tests
Xunit report: /results/xfs/results-4k/result.xml

               total        used        free      shared  buff/cache   available
Mem:            1969         309        1719           0          30        1660
Swap:              0           0           0
END TEST: XFS 4k block Mon Nov 24 14:06:34 EST 2025

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [REGRESSION] generic/127 failure caused by "mm: Use folio_next_pos()"
  2025-11-24 19:18 [REGRESSION] generic/127 failure caused by "mm: Use folio_next_pos()" Theodore Tso
@ 2025-11-24 19:20 ` Matthew Wilcox
  0 siblings, 0 replies; 2+ messages in thread
From: Matthew Wilcox @ 2025-11-24 19:20 UTC (permalink / raw)
  To: Theodore Tso; +Cc: linux-mm, Ext4 Developers List, linux-xfs

On Mon, Nov 24, 2025 at 01:18:11PM -0600, Theodore Tso wrote:
> And then when I reverted commit 60a70e61430b, the test passed.  I also
> checked and found that this commit was also causing generic/127 to
> fail for xfs:
> 
> kvm-xfstests -c xfs/4k generic/127 --fail-loop-count 0 --kernel-build
> 
> And, with the commit reverted the problem went away.
> 
> The test logs for ext4 and xfs are attached.  Willy, could you take a
> look?  Many thanks!!

https://lore.kernel.org/linux-fsdevel/20251123220518.1447261-1-willy@infradead.org/


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-11-24 19:20 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-24 19:18 [REGRESSION] generic/127 failure caused by "mm: Use folio_next_pos()" Theodore Tso
2025-11-24 19:20 ` Matthew Wilcox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox