On 2.8.2017. 10:10, Martin Pieuchot wrote:
> On 18/07/17(Tue) 15:55, Martin Pieuchot wrote:
>> When forwarding a lot of traffic with 10G interfaces contention on the
>> NET_LOCK() is "visible".  Each time you type "ifconfig" you can go grab
>> a coffee...
>>
>> The problem has a name: pf_purge_thread().  This thread is created by
>> default and run even if you don't have PF enabled.  Every `hz' it wakes
>> up, grab the lock and go to sleep. 
>>
>> Since the execution of this thread is serialized with the `softnet' task,
>> it makes more sense to execute it in the same context.  This reduce the
>> NET_LOCK() contention and implicitly preempt the packet processing.
>>
>> Diff below improves the situation with PF disabled, I didn't test with
>> PF enabled.
> Updated diff that includes sashan@ suggestions and do not stop the purge
> task when PF is disabled.  Otherwise some states are not purged until PF
> is re-enabled.  This can be optimized later.

Hi all,

with this diff states are purged as expected and ifconfig, netstat and
arp outputs are little faster then before.



Reply via email to