Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Oct 2004 01:06:58 -0700
From:      John-Mark Gurney <gurney_j@resnet.uoregon.edu>
To:        Max Laier <max@love2party.net>
Cc:        Kris Kennaway <kris@obsecurity.org>
Subject:   Re: network slowness/freez-up since update 10/11
Message-ID:  <20041017080658.GY22681@funkthat.com>
In-Reply-To: <200410151943.01797.max@love2party.net>
References:  <20041014000822.GA30887@nagual.pp.ru> <20041014182715.GB665@empiric.icir.org> <20041014203132.GA54873@nagual.pp.ru> <200410151943.01797.max@love2party.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--3Pql8miugIZX0722
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Max Laier wrote this message on Fri, Oct 15, 2004 at 19:42 +0200:
> Anyway, let's end this and get on to fixing it - shall we?

I didn't try those patches, but I think I found the problem.  I'm not
sure why it would effect us now, and not a long time ago, but it appears
that there was some optimization to drop back to processing only one
packet at a time (and possibly process other packets in an interrupt),
but something got broken...  I ended up just eliminating the drop back
to single packet delivery, and things over here seem to be doing well..

I've been running netperf's tcp stream for the last 20 minutes or so,
and ping's ar still in the sub 10ms range.. usually around 4ms..  and
most of the time I've been pushing around 11meg/sec to the machine
(which generates around 300k transmit)...

I'm now running transmits from the machine, but the performance isn't
as good as it should be..  I'm getting only about 10meg/sec right now..

attached is the patch...

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."

--3Pql8miugIZX0722
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="if_de.c.diff"

Index: if_de.c
===================================================================
RCS file: /home/ncvs/src/sys/pci/if_de.c,v
retrieving revision 1.158
diff -u -r1.158 if_de.c
--- if_de.c	13 Aug 2004 22:48:05 -0000	1.158
+++ if_de.c	17 Oct 2004 07:52:55 -0000
@@ -117,7 +117,6 @@
 static int	tulip_ifmedia_change(struct ifnet * const ifp);
 static void	tulip_ifmedia_status(struct ifnet * const ifp,
 		    struct ifmediareq *req);
-static void	tulip_ifstart_one(struct ifnet *ifp);
 static void	tulip_ifstart(struct ifnet *ifp);
 static void	tulip_init(tulip_softc_t * const sc);
 static void	tulip_intr_shared(void *arg);
@@ -4635,29 +4634,9 @@
 		break;
 	    }
 	}
-	if (IFQ_DRV_IS_EMPTY(&sc->tulip_if.if_snd))
-	    sc->tulip_if.if_start = tulip_ifstart_one;
     }
 
     TULIP_PERFEND(ifstart);
-}
-
-static void
-tulip_ifstart_one(
-    struct ifnet * const ifp)
-{
-    TULIP_PERFSTART(ifstart_one)
-    tulip_softc_t * const sc = (tulip_softc_t *)ifp->if_softc;
-
-    if ((sc->tulip_if.if_flags & IFF_RUNNING)
-	    && !IFQ_DRV_IS_EMPTY(&sc->tulip_if.if_snd)) {
-	struct mbuf *m;
-	IFQ_DRV_DEQUEUE(&sc->tulip_if.if_snd, m);
-	if(m == NULL);
-	else if((m = tulip_txput(sc, m)) != NULL)
-	    IFQ_DRV_PREPEND(&sc->tulip_if.if_snd, m);
-    }
-    TULIP_PERFEND(ifstart_one);
 }
 
 /*

--3Pql8miugIZX0722--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041017080658.GY22681>