diff mbox series

[v2] netfilter: ensure that CONNTRACK_LOCKS is power of 2

Message ID 1551172852-18056-1-git-send-email-lirongqing@baidu.com
State Accepted
Delegated to: Pablo Neira
Headers show
Series [v2] netfilter: ensure that CONNTRACK_LOCKS is power of 2 | expand

Commit Message

Li RongQing Feb. 26, 2019, 9:20 a.m. UTC
CONNTRACK_LOCKS is divisor when computer array index,
if it is power of 2, compiler will optimize modulo
operation as bitwise AND, or else modulo will lower
performance

Suggested-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Li RongQing <lirongqing@baidu.com>
---
v1-->v2: do not replace modulo operation with AND, only ensure that CONNTRACK_LOCKS is power of 2

 net/netfilter/nf_conntrack_core.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Pablo Neira Ayuso March 1, 2019, 1:36 p.m. UTC | #1
On Tue, Feb 26, 2019 at 05:20:52PM +0800, Li RongQing wrote:
> CONNTRACK_LOCKS is divisor when computer array index,
> if it is power of 2, compiler will optimize modulo
> operation as bitwise AND, or else modulo will lower
> performance

Applied, thanks.
diff mbox series

Patch

diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index e139c256e269..f708c376f225 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -2482,6 +2482,7 @@  int nf_conntrack_init_net(struct net *net)
 	int cpu;
 
 	BUILD_BUG_ON(IP_CT_UNTRACKED == IP_CT_NUMBER);
+	BUILD_BUG_ON_NOT_POWER_OF_2(CONNTRACK_LOCKS);
 	atomic_set(&net->ct.count, 0);
 
 	net->ct.pcpu_lists = alloc_percpu(struct ct_pcpu);