On 11/5/23, Kent Overstreet <kent.overstr...@linux.dev> wrote: > On Sun, Nov 05, 2023 at 08:57:53PM +0100, Mateusz Guzik wrote: >> On 11/5/23, Kent Overstreet <kent.overstr...@linux.dev> wrote: >> > Can you check btree_transactions in debugfs? >> >> 3807 __bch2_create >> path 0 b l=0 subvolumes:0:1:0 >> r l=0 ff4007690c378000 b l=0 subvolumes:SPOS_MAX locks 6:0:0 >> held by pid 0 >> path 1 c l=0 inodes:0:805879636:U32_MAX >> w l=0 ff40076876671648 c l=0 inodes:0:805879636:U32_MAX >> locks 0:1:1 held by pid 3807 >> path 2 b l=0 inodes:0:805879771:0 >> i l=0 ff4007683e267a00 b l=0 inodes:0:872415843:U32_MAX >> locks 0:2:1 held by pid 3807 >> path 3 c l=0 inodes:0:805879771:U32_MAX >> i l=0 ff4007691298d870 c l=0 inodes:0:805879771:U32_MAX >> locks 0:1:0 held by pid 3807 >> path 4 b l=0 inodes:0:805879772:U32_MAX >> w l=0 ff4007683e267a00 b l=0 inodes:0:872415843:U32_MAX >> locks 0:2:1 held by pid 3807 >> path 5 c l=0 inodes:0:805879772:U32_MAX >> w l=0 ff4007691298c958 c l=0 inodes:0:805879772:U32_MAX >> locks 0:1:1 held by pid 3807 >> path 6 b l=0 dirents:805879636:877646214245309706:U32_MAX >> w l=0 ff4007683e260a00 b l=0 >> dirents:872415232:213834028349939920:U32_MAX locks 0:1:1 held by pid >> 3807 >> path 7 c l=0 inodes:0:872415232:U32_MAX >> i l=0 ff40076903cdc000 c l=0 inodes:0:872415232:U32_MAX >> locks 0:1:0 held by pid 3807 >> backtrace: >> [<0>] bch2_btree_key_cache_scan+0x33/0x450 >> [<0>] do_shrink_slab+0x13c/0x360 >> [<0>] shrink_slab+0xc9/0x3c0 >> [<0>] shrink_node+0x363/0xb70 >> [<0>] do_try_to_free_pages+0xd5/0x5b0 >> [<0>] try_to_free_pages+0xdd/0x200 >> [<0>] __alloc_pages_slowpath.constprop.0+0x2e4/0xd50 >> [<0>] __alloc_pages+0x305/0x330 >> [<0>] alloc_pages_mpol+0x91/0x1e0 >> [<0>] allocate_slab+0x2d1/0x4d0 >> [<0>] ___slab_alloc.constprop.0+0x42a/0x6c0 >> [<0>] __kmem_cache_alloc_node+0x113/0x270 >> [<0>] __kmalloc_node_track_caller+0x4d/0x150 >> [<0>] krealloc+0x5d/0xc0 >> [<0>] __bch2_trans_commit+0x1d59/0x1f30 >> [<0>] __bch2_create+0x288/0x4e0 >> [<0>] bch2_create+0x26/0x60 >> [<0>] path_openat+0xe9f/0x11d0 >> [<0>] do_filp_open+0xb4/0x160 >> [<0>] do_sys_openat2+0x91/0xc0 >> [<0>] __x64_sys_openat+0x6a/0xa0 >> [<0>] do_syscall_64+0x32/0xf0 >> [<0>] entry_SYSCALL_64_after_hwframe+0x6e/0x76 > > So we called krealloc() with GFP_KERNEL, which then invoked key cache > reclaim, with btree locks held - oops. > > Can you run scripts/faddr2line on __bch2_trans_commit+0x1d59/0x1f30 ? >
__bch2_trans_commit+0x1d59/0x1f30: btree_key_can_insert_cached at fs/bcachefs/btree_trans_commit.c:350 (inlined by) bch2_trans_commit_write_locked at fs/bcachefs/btree_trans_commit.c:583 (inlined by) do_bch2_trans_commit at fs/bcachefs/btree_trans_commit.c:847 (inlined by) __bch2_trans_commit at fs/bcachefs/btree_trans_commit.c:1126 -- Mateusz Guzik <mjguzik gmail.com>