• Florian Westphal's avatar
    netfilter: batch synchronize_net calls during hook unregister · 933bd83e
    Florian Westphal authored
    synchronize_net is expensive and slows down netns cleanup a lot.
    
    We have two APIs to unregister a hook:
    nf_unregister_net_hook (which calls synchronize_net())
    and
    nf_unregister_net_hooks (calls nf_unregister_net_hook in a loop)
    
    Make nf_unregister_net_hook a wapper around new helper
    __nf_unregister_net_hook, which unlinks the hook but does not free it.
    
    Then, we can call that helper in nf_unregister_net_hooks and then
    call synchronize_net() only once.
    
    Andrey Konovalov reports this change improves syzkaller fuzzing speed at
    least twice.
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    933bd83e
core.c 11.8 KB