On Sun, Mar 10, 2024 at 11:17:17PM -0400, Alec Moskvin wrote:
> Hi Kent,
> 
> On Saturday 09 March 2024 12:11:24 EST, Kent Overstreet wrote:
> > this was a __GFP_NOFAIL use or two we needed to get rid of - it's fixed
> > in 6.8.
> 
> I got the same warning but with a different stack trace on 6.8:
> 
> [ 4574.388472] ------------[ cut here ]------------
> [ 4574.388479] WARNING: CPU: 7 PID: 127738 at mm/page_alloc.c:2896 
> get_page_from_freelist+0x9a2/0xcf0
> [ 4574.388488] CPU: 7 PID: 127738 Comm: kworker/u16:14 Not tainted 6.8.0 #165
> [ 4574.388491] Hardware name: Gigabyte Technology Co., Ltd. 
> H97-D3H/H97-D3H-CF, BIOS F6 04/21/2015
> [ 4574.388493] Workqueue: writeback wb_workfn (flush-bcachefs-1)
> [ 4574.388499] RIP: 0010:get_page_from_freelist+0x9a2/0xcf0
> [ 4574.388503] Code: 0f 84 9f fc ff ff 48 8b 44 24 08 f7 44 24 54 00 80 00 00 
> 8b 40 18 89 44 24 24 0f 84 bc f7 ff ff 41 83 ff 01 0f 86 b0 fa ff ff <0f> 0b 
> e9 ab f7 ff ff 44 89 e6 e8 ff 46 fc ff 48 89 44 24 18 e9 8c
> [ 4574.388506] RSP: 0000:ffff922aa2cd38a0 EFLAGS: 00010202
> [ 4574.388509] RAX: 0000000000000000 RBX: 0000000000000101 RCX: 
> 0000000000000002
> [ 4574.388511] RDX: 0000000000000001 RSI: ffffffff9d5cae10 RDI: 
> ffffffff9d5cacc0
> [ 4574.388513] RBP: 0000000000458b96 R08: 0000000000000000 R09: 
> ffffccda45b86c08
> [ 4574.388515] R10: 0000000000000002 R11: 0000000000000000 R12: 
> 0000000000000002
> [ 4574.388517] R13: ffffffff9d5cacc0 R14: 3e000000007fffff R15: 
> 0000000000000002
> [ 4574.388519] FS:  0000000000000000(0000) GS:ffff8fbcbddc0000(0000) 
> knlGS:0000000000000000
> [ 4574.388521] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 4574.388524] CR2: 00007fa3acd3e000 CR3: 000000050a2d4004 CR4: 
> 00000000001706f0
> [ 4574.388526] Call Trace:
> [ 4574.388529]  <TASK>
> [ 4574.388531]  ? __warn+0x66/0xc0
> [ 4574.388535]  ? get_page_from_freelist+0x9a2/0xcf0
> [ 4574.388538]  ? report_bug+0x166/0x1b0
> [ 4574.388542]  ? handle_bug+0x3c/0x70
> [ 4574.388545]  ? exc_invalid_op+0x17/0x70
> [ 4574.388548]  ? asm_exc_invalid_op+0x1a/0x20
> [ 4574.388553]  ? get_page_from_freelist+0x9a2/0xcf0
> [ 4574.388555]  ? bch2_btree_node_upgrade+0x48/0x2f0
> [ 4574.388560]  __alloc_pages+0x158/0x240
> [ 4574.388563]  __kmalloc_large_node+0x6a/0x130
> [ 4574.388566]  __bch2_writepage+0x68e/0x7b0
> [ 4574.388570]  ? folio_clear_dirty_for_io+0x113/0x180
> [ 4574.388574]  write_cache_pages+0x168/0x350
> [ 4574.388576]  ? bch2_readpages_end_io+0x240/0x240
> [ 4574.388579]  bch2_writepages+0x57/0xb0
> [ 4574.388583]  do_writepages+0xba/0x180
> [ 4574.388586]  __writeback_single_inode+0x2a/0x190
> [ 4574.388588]  writeback_sb_inodes+0x1d2/0x420
> [ 4574.388591]  __writeback_inodes_wb+0x47/0xd0
> [ 4574.388593]  wb_writeback.isra.0+0x150/0x1a0
> [ 4574.388596]  wb_workfn+0x269/0x370
> [ 4574.388598]  ? __schedule+0x2cd/0x11c0
> [ 4574.388600]  ? drm_sched_job_cleanup+0xd3/0x120
> [ 4574.388604]  process_one_work+0x12d/0x240
> [ 4574.388609]  worker_thread+0x2e8/0x400
> [ 4574.388612]  ? rescuer_thread+0x3f0/0x3f0
> [ 4574.388615]  kthread+0xcb/0xf0
> [ 4574.388619]  ? kthread_complete_and_exit+0x20/0x20
> [ 4574.388622]  ret_from_fork+0x2f/0x50
> [ 4574.388625]  ? kthread_complete_and_exit+0x20/0x20
> [ 4574.388628]  ret_from_fork_asm+0x11/0x20
> [ 4574.388631]  </TASK>
> [ 4574.388633] ---[ end trace 0000000000000000 ]---

Turns out, bch_folio_sector was 4 bytes, not 2, causing us to exceed the
8k limit. Thanks, fix will be out soon.

Reply via email to