• Eric Dumazet's avatar
    netfilter: nfnetlink_queue: provide rcu enabled callbacks · 84a797dd
    Eric Dumazet authored
    nenetlink_queue operations on SMP are not efficent if several queues are
    used, because of nfnl_mutex contention when applications give packet
    verdict.
    
    Use new call_rcu field in struct nfnl_callback to advertize a callback
    that is called under rcu_read_lock instead of nfnl_mutex.
    
    On my 2x4x2 machine, I was able to reach 2.000.000 pps going through
    user land returning NF_ACCEPT verdicts without losses, instead of less
    than 500.000 pps before patch.
    Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
    CC: Florian Westphal <fw@strlen.de>
    CC: Eric Leblond <eric@regit.org>
    Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
    84a797dd
nfnetlink_queue.c 21.8 KB