Subject: Re: [Patch net] netns: avoid allocating idr when dumping info

From: Nicolas Dichtel <[email-masked]>
Date: Fri, 27 Feb 2015 17:25:57 +0100

Le 27/02/2015 09:01, Eric Dumazet a écrit :
> On Thu, 2015-02-26 at 22:32 -0800, Cong Wang wrote:
>> We can allocate the peer netns id when creating the link
>> instead of when dumping the link.
>>
>> This fixes the following kernel warning:
>>
>>   ===============================
>>   [ INFO: suspicious RCU usage. ]
>>   3.19.0+ #805 Tainted: G        W
>>   -------------------------------
>>   include/linux/rcupdate.h:538 Illegal context switch in RCU read-side critical section!
>>
>>   other info that might help us debug this:
>
> This looks very complicated, why even bother ?
>
> I gave an obvious patch fixing root cause, I have no idea why you prefer
> over engineering this.
>
> If you believe allocating peer netns id is required at link creation
> time, you should explain why.
>
> BTW, (void)peernet2id(dev_net(dev), src_net) can fail, and your fix is
> not complete anyway.
That's true. The patch does not cover the following case:
ip link add foo type bar
ip link set foo netns netns1

In this case, the second command will call dev_change_net_namespace() and the
id will not be allocated.

I think Eric's patch is simpler and less error-prone.

FWIW, I will be off for one week and probably without any internet access ;-)

Regards,
Nicolas