On 2.8.2017. 11:00, Alexandr Nedvedicky wrote: > Hello, > > On Wed, Aug 02, 2017 at 10:10:51AM +0200, 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. >> > > thank Hrvoje for spotting the glitch.
i should have spotted it with the first diff, but then i haven't disabled pf while generating traffic ...