On Mon, 14 Nov 2005 17:46:24 +0100 Eric Dumazet <[EMAIL PROTECTED]> wrote:
> [EMAIL PROTECTED] a écrit : > > Use hits to speed up the SACK processing. Various forms > > of this have been used by TCP developers (Web100, STCP, BIC) > > to avoid the 2x linear search of outstanding segments. > > > > --- net-2.6.orig/include/linux/tcp.h > > +++ net-2.6/include/linux/tcp.h > > @@ -307,6 +307,21 @@ struct tcp_sock { > > struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */ > > struct tcp_sack_block selective_acks[4]; /* The SACKS themselves*/ > > > > + struct tcp_sack_block recv_sack_cache[4]; > > + > > + /* from STCP, retrans queue hinting */ > > + struct sk_buff* lost_skb_hint; > > + > > + struct sk_buff *scoreboard_skb_hint; > > + struct sk_buff *retransmit_skb_hint; > > + struct sk_buff *forward_skb_hint; > > + struct sk_buff *fastpath_skb_hint; > > + > > + int fastpath_cnt_hint; > > + int lost_cnt_hint; > > + int retransmit_cnt_hint; > > + int forward_cnt_hint; > > + > > __u16 advmss; /* Advertised MSS */ > > __u16 prior_ssthresh; /* ssthresh saved at recovery start */ > > __u32 lost_out; /* Lost packets */ > > Well... what about memory footprint ? > > On a 32bits machine : > > sizeof(struct tcp_sock) = 960 (4 objects per slab) > > After applying this patch we basically break the limit : > > sizeof(struct tcp_sock) = 960+32+36=1028 (3 objects per slab) > > Eric It could be made smaller, and there probably are better solutions. I view this as a first step. so expect refinements with better algorithms and smaller footprint. There are some things that could be shrunk in the cb to make space as well. -- Stephen Hemminger <[EMAIL PROTECTED]> OSDL http://developer.osdl.org/~shemminger - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html