All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Andrew Price <anprice@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>,
	linux-fsdevel@vger.kernel.org, gfs2@lists.linux.dev,
	Andreas Gruenbacher <agruenba@redhat.com>
Subject: Re: refactor the iomap writeback code v2
Date: Fri, 27 Jun 2025 09:02:40 +0200	[thread overview]
Message-ID: <20250627070240.GA32487@lst.de> (raw)
In-Reply-To: <07ef2fd5-d4cb-4fc3-8917-4bd6f06501d0@redhat.com>

On Thu, Jun 26, 2025 at 03:59:54PM +0100, Andrew Price wrote:
>> This version passes basic testing on xfs, and gets as far as mainline
>> for gfs2 (crashes in generic/361).
>
> I can't get generic/361 to crash per se, but it does fail as it detects the new warning about the missing ->migrate_folio for the gfs2_{rgrp,meta}_aops, which I'm looking at now.
>
> If you have different results to this, please let me know more about the crash and your test environment.

This is qemu on two virtio_blk devices, 512 byte sector size and the
followin mkfs option:

export MKFS_OPTIONS="-O -p lock_nolock"


generic/361 2s ... [  627.703731] run fstests generic/361 at 2025-06-27 03:28:28
[  628.022201] gfs2: fsid=vdc: Trying to join cluster "lock_nolock", "vdc"
[  628.022666] gfs2: fsid=vdc: Now mounting FS (format 1802)...
[  628.026350] gfs2: fsid=vdc.0: journal 0 mapped with 1 extents in 0ms
[  628.026867] gfs2: fsid=vdc.0: jid=0, already locked for use
[  628.027124] gfs2: fsid=vdc.0: jid=0: Looking at journal...
[  628.032915] gfs2: fsid=vdc.0: jid=0: Journal head lookup took 5ms
[  628.033227] gfs2: fsid=vdc.0: jid=0: Done
[  628.033415] gfs2: fsid=vdc.0: first mount done, others may mount
[  628.042031] loop0: detected capacity change from 0 to 2097152
[  628.299636] gfs2: fsid=loop0: Trying to join cluster "lock_nolock", "loop0"
[  628.300022] gfs2: fsid=loop0: Now mounting FS (format 1802)...
[  628.303319] gfs2: fsid=loop0.0: journal 0 mapped with 1 extents in 0ms
[  628.304047] gfs2: fsid=loop0.0: jid=0, already locked for use
[  628.304344] gfs2: fsid=loop0.0: jid=0: Looking at journal...
[  628.306401] gfs2: fsid=loop0.0: jid=0: Journal head lookup took 2ms
[  628.306704] gfs2: fsid=loop0.0: jid=0: Done
[  628.306925] gfs2: fsid=loop0.0: first mount done, others may mount
[  629.093872] critical space allocation error, dev loop0, sector 913152 op 0x1:(WRITE) flags 0x4800
[  629.094701] loop0: writeback error on inode 16708, offset 398209024, sector 913152
[  629.094741] critical space allocation error, dev loop0, sector 917232 op 0x1:(WRITE) flags 0x4800
[  629.095447] critical space allocation error, dev loop0, sector 919792 op 0x1:(WRITE) flags 0x8000
[  629.095867] loop0: writeback error on inode 16708, offset 400293888, sector
917232
[  629.095906] critical space allocation error, dev loop0, sector 921312 op 0x1:(WRITE) flags 0x4800
[  629.096654] critical space allocation error, dev loop0, sector 923872 op 0x1:(WRITE) flags 0x8000
[  629.097079] loop0: writeback error on inode 16708, offset 402378752, sector 921312
[  629.097120] critical space allocation error, dev loop0, sector 925392 op 0x1:(WRITE) flags 0x4800
[  629.097996] critical space allocation error, dev loop0, sector 927952 op 0x1:(WRITE) flags 0x8000
[  629.098464] loop0: writeback error on inode 16708, offset 404463616, sector 925392
[  629.098506] critical space allocation error, dev loop0, sector 929472 op 0x1:(WRITE) flags 0x4800
[  629.099325] critical space allocation error, dev loop0, sector 932032 op 0x1:(WRITE) flags 0x8000
[  629.099794] loop0: writeback error on inode 16708, offset 406548480, sector 929472
[  629.099844] critical space allocation error, dev loop0, sector 933552 op 0x1:(WRITE) flags 0x4800
[  629.100634] loop0: writeback error on inode 16708, offset 408633344, sector
933552
[  629.100676] loop0: writeback error on inode 16708, offset 410718208, sector 937632
[  629.101016] loop0: writeback error on inode 16708, offset 412803072, sector 941712
[  629.101497] loop0: writeback error on inode 16708, offset 414887936, sector 945792
[  629.102236] loop0: writeback error on inode 16708, offset 416972800, sector 949872
[  629.106734] Buffer I/O error on dev loop0, logical block 16708, lost async page write
[  629.107413] Buffer I/O error on dev loop0, logical block 17192, lost async page write
[  629.107915] Buffer I/O error on dev loop0, logical block 17219, lost async page write
[  629.108248] Buffer I/O error on dev loop0, logical block 17729, lost async page write
[  629.109214] Buffer I/O error on dev loop0, logical block 18239, lost async page write
[  629.109552] Buffer I/O error on dev loop0, logical block 18749, lost async page write
[  629.109875] Buffer I/O error on dev loop0, logical block 19259, lost async page write
[  629.110196] Buffer I/O error on dev loop0, logical block 19769, lost async page write
[  629.110275] Buffer I/O error on dev loop0, logical block 81503, lost async page write
[  629.110524] Buffer I/O error on dev loop0, logical block 20279, lost async page write
[  629.111725] gfs2: fsid=loop0.0: fatal: I/O error - block = 16708, function = gfs2_ail1_empty_one8
[  629.112427] gfs2: fsid=loop0.0: about to withdraw this file system
[  634.215552] gfs2: fsid=loop0.0: Journal recovery skipped for jid 0 until next mount.
[  634.215906] gfs2: fsid=loop0.0: Glock dequeues delayed: 0
[  634.216172] gfs2: fsid=loop0.0: File system withdrawn
[  634.216397] CPU: 1 UID: 0 PID: 148587 Comm: mount Tainted: G N  6.16.0-rc3+ #375 
[  634.216399] Tainted: [N]=TEST
[  634.216400] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.16.3-debian-1.16.3-2 04
[  634.216401] Call Trace:
[  634.216402]  <TASK>
[  634.216402]  dump_stack_lvl+0x4b/0x70
[  634.216409]  gfs2_withdraw.cold+0x98/0x4aa
[  634.216411]  ? __pfx_autoremove_wake_function+0x10/0x10
[  634.216413]  revoke_lo_before_commit+0x14/0x160
[  634.216415]  gfs2_log_flush+0x444/0xbf0
[  634.216417]  gfs2_sync_fs+0x39/0x50
[  634.216419]  sync_filesystem+0x76/0x90
[  634.216421]  gfs2_reconfigure+0x30/0x360
[  634.216423]  reconfigure_super+0xc1/0x250
[  634.216425]  path_mount+0x95a/0xb40
[  634.216426]  __x64_sys_mount+0x100/0x130
[  634.216426]  do_syscall_64+0x50/0x1e0
[  634.216429]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  634.216430] RIP: 0033:0x7f96fc253e0a
[  634.216433] Code: 48 8b 0d f9 7f 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 8
[  634.216434] RSP: 002b:00007fffd5523288 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
[  634.216436] RAX: ffffffffffffffda RBX: 000055b819d26aa0 RCX: 00007f96fc253e0a
[  634.216437] RDX: 000055b819d26cd0 RSI: 000055b819d288b0 RDI: 000055b819d27ca0
[  634.216437] RBP: 0000000000000000 R08: 000055b819d26cf0 R09: 000055b819d26d10
[  634.216438] R10: 0000000000200021 R11: 0000000000000246 R12: 000055b819d27ca0
[  634.216438] R13: 000055b819d26cd0 R14: 00007f96fc3bb264 R15: 000055b819d26bb8
[  634.216439]  </TASK>
[  634.259070] ------------[ cut here ]------------
[  634.259369] kernel BUG at fs/gfs2/super.c:76!
[  634.262243] Oops: invalid opcode: 0000 [#1] SMP NOPTI
[  634.263386] CPU: 0 UID: 0 PID: 148595 Comm: umount Tainted: G N  6.16.0-rc3+ #37 
[  634.263832] Tainted: [N]=TEST
[  634.263956] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04
[  634.264332] RIP: 0010:gfs2_jindex_free+0x13e/0x170
[  634.264647] Code: 08 e8 56 42 98 ff 48 c7 43 48 00 00 00 00 48 89 df e8 c6 38 90 ff 48 8b 04 24 b
[  634.265562] RSP: 0018:ffffc90004ba3df8 EFLAGS: 00010286
[  634.265805] RAX: ffff88811a3f41c0 RBX: ffff88811a3f41c0 RCX: 0000000000000000
[  634.266141] RDX: 0000000000000001 RSI: ffff88810425c610 RDI: 00000000ffffffff
[  634.266454] RBP: ffffc90004ba3df8 R08: ffff8881364f7638 R09: ffff8881364f75e8
[  634.266732] R10: 0000000000000000 R11: ffff8881364f7508 R12: dead000000000122
[  634.267009] R13: dead000000000100 R14: ffff88810425c620 R15: 0000000000000000
[  634.267285] FS:  00007f3f53e6d840(0000) GS:ffff8882b35d7000(0000) knlGS:0000000000000000
[  634.267622] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  634.267856] CR2: 00005625aaa38cc0 CR3: 00000001047e6006 CR4: 0000000000772ef0
[  634.268128] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  634.268405] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
[  634.268685] PKRU: 55555554
[  634.268805] Call Trace:
[  634.268913]  <TASK>
[  634.269002]  gfs2_put_super+0x165/0x230
[  634.269157]  generic_shutdown_super+0x79/0x180
[  634.269334]  kill_block_super+0x15/0x40
[  634.269578]  deactivate_locked_super+0x2b/0xb0
[  634.269788]  cleanup_mnt+0xb5/0x150
[  634.269954]  task_work_run+0x54/0x80
[  634.270123]  exit_to_user_mode_loop+0xbc/0xc0
[  634.270326]  do_syscall_64+0x1bc/0x1e0
[  634.270503]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  634.270731] RIP: 0033:0x7f3f54099b37
[  634.270899] Code: cf 92 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 0f 1f 44 00 00 31 f6 e9 09 00 00 00 8
[  634.271717] RSP: 002b:00007ffd63032398 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6
[  634.272052] RAX: 0000000000000000 RBX: 00005630901e2bb8 RCX: 00007f3f54099b37
[  634.272371] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00005630901e6b60
[  634.272695] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000073
[  634.273017] R10: 0000000000000000 R11: 0000000000000246 R12: 00007f3f541d4264
[  634.273342] R13: 00005630901e6b60 R14: 00005630901e2cd0 R15: 00005630901e2aa0
[  634.273703]  </TASK>
[  634.273809] Modules linked in: kvm_intel kvm irqbypass [last unloaded: scsi_debug]
[  634.274259] ---[ end trace 0000000000000000 ]---
[  634.274460] RIP: 0010:gfs2_jindex_free+0x13e/0x170
[  634.274753] Code: 08 e8 56 42 98 ff 48 c7 43 48 00 00 00 00 48 89 df e8 c6 38 90 ff 48 8b 04 24 b
[  634.275604] RSP: 0018:ffffc90004ba3df8 EFLAGS: 00010286
[  634.275857] RAX: ffff88811a3f41c0 RBX: ffff88811a3f41c0 RCX: 0000000000000000
[  634.276230] RDX: 0000000000000001 RSI: ffff88810425c610 RDI: 00000000ffffffff
[  634.276549] RBP: ffffc90004ba3df8 R08: ffff8881364f7638 R09: ffff8881364f75e8
[  634.276896] R10: 0000000000000000 R11: ffff8881364f7508 R12: dead000000000122
[  634.277208] R13: dead000000000100 R14: ffff88810425c620 R15: 0000000000000000
[  634.277549] FS:  00007f3f53e6d840(0000) GS:ffff8882b35d7000(0000) knlGS:0000000000000000
[  634.277948] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  634.278201] CR2: 00005625aaa38cc0 CR3: 00000001047e6006 CR4: 0000000000772ef0
[  634.278513] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  634.278819] DR3: 0000000000000000 DR6: 00000000ffff07f0 DR7: 0000000000000400
[  634.279127] PKRU: 55555554


  reply	other threads:[~2025-06-27  7:02 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-17 10:54 refactor the iomap writeback code v2 Christoph Hellwig
2025-06-17 10:55 ` [PATCH 01/11] iomap: pass more arguments using struct iomap_writepage_ctx Christoph Hellwig
2025-06-17 17:54   ` Joanne Koong
2025-06-18  4:35     ` Christoph Hellwig
2025-06-17 10:55 ` [PATCH 02/11] iomap: cleanup the pending writeback tracking in iomap_writepage_map_blocks Christoph Hellwig
2025-06-17 10:55 ` [PATCH 03/11] iomap: refactor the writeback interface Christoph Hellwig
2025-06-17 18:33   ` Joanne Koong
2025-06-18  4:39     ` Christoph Hellwig
2025-06-17 10:55 ` [PATCH 04/11] iomap: hide ioends from the generic writeback code Christoph Hellwig
2025-06-17 19:22   ` Joanne Koong
2025-06-18  4:41     ` Christoph Hellwig
2025-06-17 10:55 ` [PATCH 05/11] iomap: add public helpers for uptodate state manipulation Christoph Hellwig
2025-06-17 10:55 ` [PATCH 06/11] iomap: move all ioend handling to ioend.c Christoph Hellwig
2025-06-17 19:35   ` Joanne Koong
2025-06-17 10:55 ` [PATCH 07/11] iomap: rename iomap_writepage_map to iomap_writeback_folio Christoph Hellwig
2025-06-17 19:44   ` Joanne Koong
2025-06-18  4:42     ` Christoph Hellwig
2025-06-17 10:55 ` [PATCH 08/11] iomap: move folio_unlock out of iomap_writeback_folio Christoph Hellwig
2025-06-17 10:55 ` [PATCH 09/11] iomap: export iomap_writeback_folio Christoph Hellwig
2025-06-17 22:00   ` Joanne Koong
2025-06-17 10:55 ` [PATCH 10/11] iomap: replace iomap_folio_ops with iomap_write_ops Christoph Hellwig
2025-06-17 22:25   ` Joanne Koong
2025-06-18  4:43     ` Christoph Hellwig
2025-06-17 10:55 ` [PATCH 11/11] iomap: add read_folio_range() handler for buffered writes Christoph Hellwig
2025-06-26 14:59 ` refactor the iomap writeback code v2 Andrew Price
2025-06-27  7:02   ` Christoph Hellwig [this message]
2025-07-07 12:07     ` Andrew Price

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250627070240.GA32487@lst.de \
    --to=hch@lst.de \
    --cc=agruenba@redhat.com \
    --cc=anprice@redhat.com \
    --cc=gfs2@lists.linux.dev \
    --cc=linux-fsdevel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.