This is a first patchset for IPVS optimizations. Another patchset will address the locking in schedulers and moving the global _bh disabling from LOCAL_OUT to all locks. It is in TODO list. All patches are for net-next. The idea is after discussion and review Simon to apply the patchset to ipvs-next tree. The changes in this patchset eliminate locks and dst refcnt operations from packet processing by using RCU. There are more details in the patches. v2: * use "net: add skb_dst_set_unref" instead of "net: add dst_get_noref and refdst_ptr helpers" * add "ipvs: no need to reroute anymore on DNAT over loopback" * add "ipvs: do not use skb_share_check" * add "ipvs: consolidate all dst checks on transmit in one place", so that we can avoid the refdst games in next patch * after "ipvs: consolidate all dst checks on transmit in one place" "ipvs: optimize dst usage for real server" is simpler and uses the new skb_dst_set_unref function * extend "ipvs: reorder keys in connection structure" with changes in ip_vs_ct_in_get * fix "ipvs: avoid kmem_cache_zalloc in ip_vs_conn_new" to use new function ip_vs_addr_set, so that we reset all address fields that are used for hashing by hash_conntrack_raw Julian Anastasov (15): net: add skb_dst_set_unref ipvs: avoid routing by TOS for real server ipvs: prefer NETDEV_DOWN event to free cached dsts ipvs: convert the IP_VS_XMIT macros to functions ipvs: rename functions related to dst_cache reset ipvs: no need to reroute anymore on DNAT over loopback ipvs: do not use skb_share_check ipvs: consolidate all dst checks on transmit in one place ipvs: optimize dst usage for real server ipvs: convert app locks ipvs: remove rs_lock by using RCU ipvs: convert locks used in persistence engines ipvs: convert connection locking ipvs: reorder keys in connection structure ipvs: avoid kmem_cache_zalloc in ip_vs_conn_new include/linux/skbuff.h | 14 + include/net/ip_vs.h | 71 ++- net/netfilter/ipvs/ip_vs_app.c | 27 +- net/netfilter/ipvs/ip_vs_conn.c | 271 +++++---- net/netfilter/ipvs/ip_vs_core.c | 16 +- net/netfilter/ipvs/ip_vs_ctl.c | 128 ++-- net/netfilter/ipvs/ip_vs_ftp.c | 2 + net/netfilter/ipvs/ip_vs_pe.c | 43 +- net/netfilter/ipvs/ip_vs_pe_sip.c | 1 + net/netfilter/ipvs/ip_vs_proto_sctp.c | 18 +- net/netfilter/ipvs/ip_vs_proto_tcp.c | 18 +- net/netfilter/ipvs/ip_vs_proto_udp.c | 19 +- net/netfilter/ipvs/ip_vs_xmit.c | 1046 ++++++++++++++------------------- 13 files changed, 779 insertions(+), 895 deletions(-) -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html