forked from mirrors/linux
Using "iptables -L" with a lot of rules have a too big BH latency. Jesper mentioned ~6 ms and worried of frame drops. Switch to a per_cpu seqlock scheme, so that taking a snapshot of counters doesnt need to block BH (for this cpu, but also other cpus). This adds two increments on seqlock sequence per ipt_do_table() call, its a reasonable cost for allowing "iptables -L" not block BH processing. Reported-by: Jesper Dangaard Brouer <hawk@comx.dk> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> CC: Patrick McHardy <kaber@trash.net> Acked-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Jesper Dangaard Brouer <hawk@comx.dk> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> |
||
|---|---|---|
| .. | ||
| Kbuild | ||
| nf_conntrack_amanda.h | ||
| nf_conntrack_common.h | ||
| nf_conntrack_dccp.h | ||
| nf_conntrack_ftp.h | ||
| nf_conntrack_h323.h | ||
| nf_conntrack_h323_asn1.h | ||
| nf_conntrack_h323_types.h | ||
| nf_conntrack_irc.h | ||
| nf_conntrack_pptp.h | ||
| nf_conntrack_proto_gre.h | ||
| nf_conntrack_sane.h | ||
| nf_conntrack_sctp.h | ||
| nf_conntrack_sip.h | ||
| nf_conntrack_tcp.h | ||
| nf_conntrack_tftp.h | ||
| nf_conntrack_tuple_common.h | ||
| nfnetlink.h | ||
| nfnetlink_compat.h | ||
| nfnetlink_conntrack.h | ||
| nfnetlink_log.h | ||
| nfnetlink_queue.h | ||
| x_tables.h | ||
| xt_CHECKSUM.h | ||
| xt_CLASSIFY.h | ||
| xt_cluster.h | ||
| xt_comment.h | ||
| xt_connbytes.h | ||
| xt_connlimit.h | ||
| xt_connmark.h | ||
| xt_CONNMARK.h | ||
| xt_CONNSECMARK.h | ||
| xt_conntrack.h | ||
| xt_cpu.h | ||
| xt_CT.h | ||
| xt_dccp.h | ||
| xt_DSCP.h | ||
| xt_dscp.h | ||
| xt_esp.h | ||
| xt_hashlimit.h | ||
| xt_helper.h | ||
| xt_IDLETIMER.h | ||
| xt_iprange.h | ||
| xt_ipvs.h | ||
| xt_LED.h | ||
| xt_length.h | ||
| xt_limit.h | ||
| xt_mac.h | ||
| xt_mark.h | ||
| xt_MARK.h | ||
| xt_multiport.h | ||
| xt_NFLOG.h | ||
| xt_NFQUEUE.h | ||
| xt_osf.h | ||
| xt_owner.h | ||
| xt_physdev.h | ||
| xt_pkttype.h | ||
| xt_policy.h | ||
| xt_quota.h | ||
| xt_RATEEST.h | ||
| xt_rateest.h | ||
| xt_realm.h | ||
| xt_recent.h | ||
| xt_sctp.h | ||
| xt_SECMARK.h | ||
| xt_socket.h | ||
| xt_state.h | ||
| xt_statistic.h | ||
| xt_string.h | ||
| xt_TCPMSS.h | ||
| xt_tcpmss.h | ||
| xt_TCPOPTSTRIP.h | ||
| xt_tcpudp.h | ||
| xt_TEE.h | ||
| xt_time.h | ||
| xt_TPROXY.h | ||
| xt_u32.h | ||