• Yi-Hung Wei's avatar
    netfilter: nf_conncount: Add list lock and gc worker, and RCU for init tree search · 5c789e13
    Yi-Hung Wei authored
    This patch is originally from Florian Westphal.
    
    This patch does the following 3 main tasks.
    
    1) Add list lock to 'struct nf_conncount_list' so that we can
    alter the lists containing the individual connections without holding the
    main tree lock.  It would be useful when we only need to add/remove to/from
    a list without allocate/remove a node in the tree.  With this change, we
    update nft_connlimit accordingly since we longer need to maintain
    a list lock in nft_connlimit now.
    
    2) Use RCU for the initial tree search to improve tree look up performance.
    
    3) Add a garbage collection worker. This worker is schedule when there
    are excessive tree node that needed to be recycled.
    
    Moreover,the rbnode reclaim logic is moved from search tree to insert tree
    to avoid race condition.
    Signed-off-by: default avatarYi-Hung Wei <yihung.wei@gmail.com>
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    5c789e13
nft_connlimit.c 7.14 KB