Files
linux/net
Eric Dumazet 255d0dc340 netfilter: x_table: speedup compat operations
One iptables invocation with 135000 rules takes 35 seconds of cpu time
on a recent server, using a 32bit distro and a 64bit kernel.

We eventually trigger NMI/RCU watchdog.

INFO: rcu_sched_state detected stall on CPU 3 (t=6000 jiffies)

COMPAT mode has quadratic behavior and consume 16 bytes of memory per
rule.

Switch the xt_compat algos to use an array instead of list, and use a
binary search to locate an offset in the sorted array.

This halves memory need (8 bytes per rule), and removes quadratic
behavior [ O(N*N) -> O(N*log2(N)) ]

Time of iptables goes from 35 s to 150 ms.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2011-01-13 12:05:12 +01:00
..
2010-10-25 13:09:44 -07:00
2011-01-06 11:16:54 -08:00
2010-12-10 12:49:23 +01:00
2010-09-23 14:33:39 -07:00
2010-10-21 15:44:13 +02:00
2010-09-23 14:33:39 -07:00
2011-01-05 16:07:12 -05:00
2010-12-19 21:59:35 -08:00
2010-04-20 16:37:13 -07:00
2010-11-15 13:24:06 -05:00
2011-01-05 13:39:17 -08:00
2010-12-16 13:44:24 -08:00
2010-12-16 13:44:24 -08:00
2010-10-15 15:53:27 +02:00