lockdep warning: fs_reclaim_acquire vs tcp_sendpage

Sagi Grimberg sagi at grimberg.me
Wed Oct 19 06:09:39 PDT 2022



On 10/19/22 14:35, Daniel Wagner wrote:
> On Wed, Oct 19, 2022 at 11:37:13AM +0200, Daniel Wagner wrote:
>>>>     Possible unsafe locking scenario:
>>>>
>>>>           CPU0                    CPU1
>>>>           ----                    ----
>>>>      lock(fs_reclaim);
>>>>                                   lock(sk_lock-AF_INET-NVME);
>>>>                                   lock(fs_reclaim);
>>>>      lock(sk_lock-AF_INET-NVME);
>>>
>>> Indeed. I see the issue.
>>> kswapd is trying to swap out pages, but if someone were to delete
>>> the controller (like in this case), sock_release -> tcp_disconnect
>>> will alloc skb that may need to reclaim pages.
>>>
>>> Two questions, the stack trace suggests that you are not using
>>> nvme-mpath? is that the case?
>>
>> This is with a multipath setup. The fio settings are pushing the limits
>> of the VM (memory size) hence the kswap process kicking in.
>>
>>> Given that we fail all inflight requests before we free the socket,
>>> I don't expect for this to be truly circular...
>>>
>>> I'm assuming that we'll need the below similar to nbd/iscsi:
>>
>> Let me try this.
> 
> Still able to trigger though I figured out how I am able to
> reproduce it:
> 
>   VM 4M memory, 8 vCPUs

thats small...

What is vm.min_free_kbytes (via sysctl)?



More information about the Linux-nvme mailing list