diff options
author | Florian Westphal | 2018-08-29 14:41:32 +0200 |
---|---|---|
committer | Pablo Neira Ayuso | 2018-09-17 11:40:07 +0200 |
commit | 0935d558840099b3679c67bb7468dc78fcbad940 (patch) | |
tree | 3356d8544975ac1c98147eda9e7ce9a8c2a25fae /include/net/netfilter/nf_tables.h | |
parent | netfilter: nf_tables: warn when expr implements only one of activate/deactivate (diff) | |
download | kernel-qcow2-linux-0935d558840099b3679c67bb7468dc78fcbad940.tar.gz kernel-qcow2-linux-0935d558840099b3679c67bb7468dc78fcbad940.tar.xz kernel-qcow2-linux-0935d558840099b3679c67bb7468dc78fcbad940.zip |
netfilter: nf_tables: asynchronous release
Release the committed transaction log from a work queue, moving
expensive synchronize_rcu out of the locked section and providing
opportunity to batch this.
On my test machine this cuts runtime of nft-test.py in half.
Based on earlier patch from Pablo Neira Ayuso.
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/net/netfilter/nf_tables.h')
-rw-r--r-- | include/net/netfilter/nf_tables.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h index 2c33958f3e7a..841835a387e1 100644 --- a/include/net/netfilter/nf_tables.h +++ b/include/net/netfilter/nf_tables.h @@ -1298,12 +1298,14 @@ static inline void nft_set_elem_clear_busy(struct nft_set_ext *ext) * * @list: used internally * @msg_type: message type + * @put_net: ctx->net needs to be put * @ctx: transaction context * @data: internal information related to the transaction */ struct nft_trans { struct list_head list; int msg_type; + bool put_net; struct nft_ctx ctx; char data[0]; }; |