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>