1
linux/net/ipv4/netfilter
Eric Dumazet 7f5c6d4f66 netfilter: get rid of atomic ops in fast path
We currently use a percpu spinlock to 'protect' rule bytes/packets
counters, after various attempts to use RCU instead.

Lately we added a seqlock so that get_counters() can run without
blocking BH or 'writers'. But we really only need the seqcount in it.

Spinlock itself is only locked by the current/owner cpu, so we can
remove it completely.

This cleanups api, using correct 'writer' vs 'reader' semantic.

At replace time, the get_counters() call makes sure all cpus are done
using the old table.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
2011-04-04 17:04:03 +02:00
..
arp_tables.c netfilter: get rid of atomic ops in fast path 2011-04-04 17:04:03 +02:00
arpt_mangle.c netfilter: arpt_mangle: fix return values of checkentry 2011-02-01 16:03:46 +01:00
arptable_filter.c
ip_queue.c netfilter: ip_queue: rwlock to spinlock conversion 2010-06-09 15:47:41 +02:00
ip_tables.c netfilter: get rid of atomic ops in fast path 2011-04-04 17:04:03 +02:00
ipt_ah.c netfilter: xtables: change hotdrop pointer to direct modification 2010-05-11 18:35:27 +02:00
ipt_CLUSTERIP.c netfilter: ipt_CLUSTERIP: fix buffer overflow 2011-03-20 15:42:52 +01:00
ipt_ecn.c netfilter: xtables: change hotdrop pointer to direct modification 2010-05-11 18:35:27 +02:00
ipt_ECN.c netfilter: xtables: substitute temporary defines by final name 2010-05-11 18:31:17 +02:00
ipt_LOG.c netfilter: xt_LOG: do print MAC header on FORWARD 2010-11-15 11:23:06 +01:00
ipt_MASQUERADE.c netfilter: xtables: substitute temporary defines by final name 2010-05-11 18:31:17 +02:00
ipt_NETMAP.c netfilter: nf_nat: support user-specified SNAT rules in LOCAL_IN 2010-06-17 06:12:26 +02:00
ipt_REDIRECT.c netfilter: xtables: substitute temporary defines by final name 2010-05-11 18:31:17 +02:00
ipt_REJECT.c ipv4: Don't pre-seed hoplimit metric. 2010-12-12 22:08:17 -08:00
ipt_ULOG.c netfilter: xtables: substitute temporary defines by final name 2010-05-11 18:31:17 +02:00
iptable_filter.c netfilter: cleanup printk messages 2010-05-13 15:02:08 +02:00
iptable_mangle.c netfilter: do not omit re-route check on NF_QUEUE verdict 2011-01-20 10:23:26 +01:00
iptable_raw.c
iptable_security.c
Kconfig netfilter: ipt_addrtype: rename to xt_addrtype 2011-03-15 20:16:20 +01:00
Makefile netfilter: ipt_addrtype: rename to xt_addrtype 2011-03-15 20:16:20 +01:00
nf_conntrack_l3proto_ipv4_compat.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 into HEAD 2011-01-13 10:29:21 +09:00
nf_conntrack_l3proto_ipv4.c netfilter: cleanup printk messages 2010-05-13 15:02:08 +02:00
nf_conntrack_proto_icmp.c
nf_defrag_ipv4.c netfilter: nf_conntrack_defrag: check socket type before touching nodefrag flag 2010-09-22 13:13:34 -07:00
nf_nat_amanda.c netfilter: nf_nat_amanda: rename a variable 2010-11-15 18:45:12 +01:00
nf_nat_core.c netfilter: nf_nat: place conntrack in source hash after SNAT is done 2011-01-20 15:49:52 +01:00
nf_nat_ftp.c netfilter: nf_nat: better error handling of nf_ct_expect_related() in helpers 2010-09-22 08:34:12 +02:00
nf_nat_h323.c netfilter: nf_nat: better error handling of nf_ct_expect_related() in helpers 2010-09-22 08:34:12 +02:00
nf_nat_helper.c netfilter: nf_nat: add nf_nat_csum() 2010-09-15 19:24:50 +02:00
nf_nat_irc.c netfilter: nf_nat: better error handling of nf_ct_expect_related() in helpers 2010-09-22 08:34:12 +02:00
nf_nat_pptp.c
nf_nat_proto_common.c netfilter: nf_nat: don't check if the tuple is unique when there isn't any other choice 2010-08-02 17:35:49 +02:00
nf_nat_proto_dccp.c netfilter: nf_nat: make unique_tuple return void 2010-08-02 17:20:54 +02:00
nf_nat_proto_gre.c netfilter: nf_nat: don't check if the tuple is unique when there isn't any other choice 2010-08-02 17:35:49 +02:00
nf_nat_proto_icmp.c netfilter: nf_nat: don't check if the tuple is unique when there isn't any other choice 2010-08-02 17:35:49 +02:00
nf_nat_proto_sctp.c netfilter: nf_nat: make unique_tuple return void 2010-08-02 17:20:54 +02:00
nf_nat_proto_tcp.c netfilter: nf_nat: make unique_tuple return void 2010-08-02 17:20:54 +02:00
nf_nat_proto_udp.c netfilter: nf_nat: make unique_tuple return void 2010-08-02 17:20:54 +02:00
nf_nat_proto_udplite.c netfilter: nf_nat: make unique_tuple return void 2010-08-02 17:20:54 +02:00
nf_nat_proto_unknown.c netfilter: nf_nat: make unique_tuple return void 2010-08-02 17:20:54 +02:00
nf_nat_rule.c netfilter: nf_nat: no IP_NAT_RANGE_MAP_IPS flags when alloc_null_binding() 2010-09-16 19:47:51 +02:00
nf_nat_sip.c netfilter: nf_nat: better error handling of nf_ct_expect_related() in helpers 2010-09-22 08:34:12 +02:00
nf_nat_snmp_basic.c netfilter: nf_conntrack: nf_conntrack snmp helper 2011-01-18 18:12:24 +01:00
nf_nat_standalone.c net: Put fl4_* macros to struct flowi4 and use them again. 2011-03-12 15:08:54 -08:00
nf_nat_tftp.c