net: Nastily set the max number of convs to 4096
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 30 Jan 2017 22:59:14 +0000 (17:59 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 30 Jan 2017 22:59:14 +0000 (17:59 -0500)
The IP stack severely limits the number of conversations available to a
protocol.  The max is 4096 (due to how the qid.path is used for indexing
into the conv array).  This means that we can have at most 4096
conversations at a time, which also limits the guest and its port-forwards.

This raises that limit to 4096 (from 1024 for TCP and 256 for UDP), until
we can redesign #ip.  At that time, we can also look at the horrendous O(n)
operations when we make conversations and whatnot.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/net/tcp.c
kern/src/net/udp.c

index 597d923..d544fd9 100644 (file)
@@ -3227,7 +3227,7 @@ void tcpinit(struct Fs *fs)
        tcp->inuse = tcpinuse;
        tcp->gc = tcpgc;
        tcp->ipproto = IP_TCPPROTO;
-       tcp->nc = scalednconv();
+       tcp->nc = 4096;
        tcp->ptclsize = sizeof(Tcpctl);
        tpriv->stats[MaxConn] = tcp->nc;
 
index faf78fb..8f81068 100644 (file)
@@ -679,7 +679,7 @@ void udpinit(struct Fs *fs)
        udp->advise = udpadvise;
        udp->stats = udpstats;
        udp->ipproto = IP_UDPPROTO;
-       udp->nc = Nchans;
+       udp->nc = 4096;
        udp->ptclsize = sizeof(Udpcb);
 
        Fsproto(fs, udp);