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>

Reply via email to