[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20180322.122226.1774912567663468513.davem@davemloft.net>
Date: Thu, 22 Mar 2018 12:22:26 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: dav.lebrun@...il.com, netdev@...r.kernel.org, dlebrun@...gle.com,
roopa@...ulusnetworks.com
Subject: Re: [PATCH net] ipv6: sr: fix scheduling in RCU when creating seg6
lwtunnel state
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Tue, 20 Mar 2018 10:20:15 -0700
>
>
> On 03/20/2018 10:11 AM, David Lebrun wrote:
>> On 20/03/18 15:07, Eric Dumazet wrote:
>>> This is not the proper fix.
>>>
>>> Control path holds RTNL and can sleeep if needed.
>>>
>>> RCU should be avoided in lwtunnel_build_state()
>>>
>>
>> +Roopa
>>
>> In lwtunnel_build_state(), the RCU protects the lwtunnel_encap_ops "ops" which is rcu-dereferenced. Moreover, the lwtunnel_state_alloc() function, which is used in all build_state functions, also uses GFP_ATOMIC, so this seemed a proper fix, or at least proper mitigation.
>>
>> Do you suggest that the lwtunnel_encap_ops can be protected in a different way, not requiring RCU ?
>
> Yes, GFP_ATOMIC might be an 'easy fix' for net tree,
> but for the future, GFP_KERNEL allocations make more sense in control path.
Agreed.
I'll apply this to net and queue it up for -stable, but long term making
this able to use GFP_KERNEL properly is the real way to go about it.
Powered by blists - more mailing lists