Whenever we fetch skb conntrack info, we need to access two
distinct cache lines in sk_buff, #2 (nfct pointer) and #3
(nfctinfo bits).  This series removes nfctinfo and joins it
with the data pointer in a single ulong.

We have 3 nfctinfo bits, the slab cache used for nf_conn objects
guarantees at least 8 byte alignment so there is no overlap.

For the conntrack templates most arches also guarantee an
8 byte minalign, but not all.

Patch #6 adds manual alignment of the templates if
ARCH_KMALLOC_MINALIGN isn't sufficient.

A followup series to this one will resurrect an old patch from
Pablo that adds an 'untracked' ctinfo status, this then allows
to get rid of the conntrack template object (which in turn avoids
get/put atomic ops for untracked skbs).

 include/linux/skbuff.h                         |   32 ++++++-----
 include/net/ip_vs.h                            |   10 ++-
 include/net/netfilter/nf_conntrack.h           |   17 +++++-
 include/net/netfilter/nf_conntrack_core.h      |    2 
 include/net/netfilter/nf_conntrack_l4proto.h   |    2 
 net/core/skbuff.c                              |    2 
 net/ipv4/netfilter/ipt_SYNPROXY.c              |   11 +--
 net/ipv4/netfilter/nf_conntrack_proto_icmp.c   |   15 ++---
 net/ipv4/netfilter/nf_defrag_ipv4.c            |    4 -
 net/ipv4/netfilter/nf_dup_ipv4.c               |    7 +-
 net/ipv6/netfilter/ip6t_SYNPROXY.c             |   11 +--
 net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c |   20 +++----
 net/ipv6/netfilter/nf_defrag_ipv6_hooks.c      |    4 -
 net/ipv6/netfilter/nf_dup_ipv6.c               |    7 +-
 net/netfilter/core.c                           |    2 
 net/netfilter/nf_conntrack_core.c              |   70 ++++++++++++++++---------
 net/netfilter/nf_conntrack_proto_dccp.c        |    1 
 net/netfilter/nf_conntrack_proto_sctp.c        |    2 
 net/netfilter/nf_conntrack_proto_tcp.c         |    1 
 net/netfilter/nf_conntrack_proto_udp.c         |    3 -
 net/netfilter/nf_conntrack_standalone.c        |    3 +
 net/netfilter/nf_nat_helper.c                  |    2 
 net/netfilter/nft_ct.c                         |    3 -
 net/netfilter/xt_CT.c                          |   12 +---
 net/openvswitch/conntrack.c                    |   12 +---
 net/sched/cls_flow.c                           |    2 
 26 files changed, 141 insertions(+), 116 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to