On Mon, 8 Mar 2004 22:21:56 +0100
Andi Kleen <ak@xxxxxxx> wrote:
> > +/* Vegas variables */
> > + struct {
> > + __u32 beg_snd_nxt; /* right edge during last RTT */
> > + __u32 beg_snd_una; /* left edge during last RTT */
> > + __u32 beg_snd_cwnd; /* saves the size of the cwnd */
> > + __u8 do_vegas; /* do vegas for this connection */
> > + __u8 doing_vegas_now;/* if true, do vegas for this RTT */
> > + __u16 cntRTT; /* # of RTTs measured within last RTT */
> > + __u32 minRTT; /* min of RTTs measured within last RTT
> > (in usec) */
> > + __u32 baseRTT; /* the min of all Vegas RTT
> > measurements seen (in usec) */
> > + } vegas;
>
> How about making this and the experimental westwood stuff CONFIG_*
> options? At least for the data structures? Or maybe alternatively allocating
> it separately when needed only (this would avoid CONFIG_* options)
CONFIG options are of no use vendors who need to ship binary kernels.
But it might make sense to drop this for CONFIG_EMBEDDED, but I can't
see embedded kernels having lots of connections anyway.
> I remember when we made jokes about the size of TCBs of other stacks
> compared to Linux, but we must have exceeded them all by far. The additional
> code is not really a problem, but adding all that bloat to dynamic data
> structures adds up quickly when you have a few thousands of them, limiting
> scalability.
>
> -Andi
--
Stephen Hemminger mailto:shemminger@xxxxxxxx
Open Source Development Lab http://developer.osdl.org/shemminger
|