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
|