Re: net: deadlock on genl_mutex

From: Cong Wang
Date: Mon Feb 06 2017 - 01:32:49 EST


On Sun, Jan 29, 2017 at 2:11 AM, Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote:
> On Fri, Dec 9, 2016 at 6:08 AM, Cong Wang <xiyou.wangcong@xxxxxxxxx> wrote:
>>>> Chain exists of:
>>>> Possible unsafe locking scenario:
>>>>
>>>> CPU0 CPU1
>>>> ---- ----
>>>> lock(genl_mutex);
>>>> lock(nlk->cb_mutex);
>>>> lock(genl_mutex);
>>>> lock(rtnl_mutex);
>>>>
>>>> *** DEADLOCK ***
>>>
>>> This one looks legitimate, because nlk->cb_mutex could be rtnl_mutex.
>>> Let me think about it.
>>
>> Never mind. Actually both reports in this thread are legitimate.
>>
>> I know what happened now, the lock chain is so long, 4 locks are involved
>> to form a chain!!!
>>
>> Let me think about how to break the chain.
>
>
> Cong, any success with breaking the chain?

No luck yet. Each part of the chain seems legit, not sure which
one could be reordered. :-/