]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
Revert "netfilter: x_tables: Switch synchronization to RCU"
authorMark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Mon, 8 Mar 2021 01:24:12 +0000 (14:24 +1300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 30 Mar 2021 12:30:28 +0000 (14:30 +0200)
commit04b8e4fdbbfd201a35bac965cd48ad9b74674c94
treeebdfb2f7f97e2f3b43b5628c802fd1cf5515b617
parentf6a6d0ac49a5697f76909f00f2a0372e9317407d
Revert "netfilter: x_tables: Switch synchronization to RCU"

[ Upstream commit d3d40f237480abf3268956daf18cdc56edd32834 ]

This reverts commit cc00bcaa589914096edef7fb87ca5cee4a166b5c.

This (and the preceding) patch basically re-implemented the RCU
mechanisms of patch 784544739a25. That patch was replaced because of the
performance problems that it created when replacing tables. Now, we have
the same issue: the call to synchronize_rcu() makes replacing tables
slower by as much as an order of magnitude.

Prior to using RCU a script calling "iptables" approx. 200 times was
taking 1.16s. With RCU this increased to 11.59s.

Revert these patches and fix the issue in a different way.

Signed-off-by: Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/netfilter/x_tables.h
net/ipv4/netfilter/arp_tables.c
net/ipv4/netfilter/ip_tables.c
net/ipv6/netfilter/ip6_tables.c
net/netfilter/x_tables.c