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.