On 5/22/20 8:01 AM, Jon Maloy wrote:
>
>
> On 5/22/20 2:18 AM, Xin Long wrote:
>> On Fri, May 22, 2020 at 1:55 PM Eric Dumazet <eduma...@google.com> wrote:
>>> Resend to the list in non HTML form
>>>
>>>
>>> On Thu, May 21, 2020 at 10:53 PM Eric Dumazet <eduma...@google.com> wrote:
>>>>
>>>>
>>>> On Thu, May 21, 2020 at 10:50 PM Xin Long <lucien....@gmail.com> wrote:
>>>>> On Fri, May 22, 2020 at 2:30 AM Eric Dumazet <eduma...@google.com> wrote:
>>>>>> dst_cache_get() documents it must be used with BH disabled.
>>>>> Interesting, I thought under rcu_read_lock() is enough, which calls
>>>>> preempt_disable().
>>>>
>>>> rcu_read_lock() does not disable BH, never.
>>>>
>>>> And rcu_read_lock() does not necessarily disable preemption.
>> Then I need to think again if it's really worth using dst_cache here.
>>
>> Also add tipc-discussion and Jon to CC list.
> The suggested solution will affect all bearers, not only UDP, so it is not a
> good.
> Is there anything preventing us from disabling preemtion inside the scope of
> the rcu lock?
>
> ///jon
>
BH is disabled any way few nano seconds later, disabling it a bit earlier wont
make any difference.
Also, if you intend to make dst_cache BH reentrant, you will have to make that
for net-next, not net tree.
Please carefully read include/net/dst_cache.h
It is very clear about BH requirements.