Date: Thu, 08 Mar 2001 18:31:30 -0800 From: Lars Eggert <larse@ISI.EDU> To: Mike Whitley <mwhitley@borg.proceon.com> Cc: freebsd-mobile@FreeBSD.ORG Subject: Re: Linksys PCMPC100 Message-ID: <3AA84082.366458FC@isi.edu> References: <Pine.BSF.4.10.10103081709190.63378-100000@borg.proceon.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] > Has anybody figured out what is causing performance problems > with the Linksys PCMPC100 card and the ed driver in 4.2? [This is from a -stable email from 11/30/00 titled "Re: Linksys PCMPC100 problem"] Another piece to the puzzle of bad network performance of the Linksys cards is that they're only supported as generic NE2000 cards with 8K of memory by the ed driver. 1.5K are used for the send buffer, 6.5K remain for the receive buffer. This is a shortcoming of the ed driver, since the Linksys cards have 32K of memory. If a sender sends large packets to a Linksys cards (NFS over UDP), the IP fragments arrive too fast and overrun the buffer. The last fragment(s) are lost and the wohle packet is dropped. The patch below fixes a small bug in the ed driver that causes only 8K instead of 16K (as normal for 16bit cards) to be used. However, full support for the Linksys cards should really be added to the ed driver. The code in http://www.FreeBSD.org/cgi/query-pr.cgi?pr=12088 looks promising, but doesn't apply cleanly due to bitrot. Index: if_ed.c =================================================================== RCS file: /home/larse/CVSROOT/RELENG_4/sys/dev/ed/if_ed.c,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 if_ed.c --- if_ed.c 2000/10/25 01:15:38 1.1.1.1 +++ if_ed.c 2000/11/30 22:16:13 @@ -1046,6 +1046,18 @@ } + /* + * Hack: + * Reprobe Linksys. This sets sc->isa16bit, which causes 16K + * of the card memory to be used instead of only 8K. However, + * the Linksys cards (at least my PCMPC100) have 32K memory. + * This driver should really be changed to fully support the + * Linksys cards. The patch in + * http://www.FreeBSD.org/cgi/query-pr.cgi?pr=12088 looks + * promising, but doesn't apply cleanly due to bitrot. + */ + ed_get_Linksys(sc); + /* 8k of memory plus an additional 8k if 16bit */ memsize = 8192 + sc->isa16bit * 8192; @@ -1690,6 +1702,13 @@ printf("%s\n", (((sc->vendor == ED_VENDOR_3COM) || (sc->vendor == ED_VENDOR_HP)) && (ifp->if_flags & IFF_ALTPHYS)) ? " tranceiver disabled" : ""); +#if ED_DEBUG + printf("%s%d: %u/%u/%u bytes tx/rx/total card memory\n", + ifp->if_name, ifp->if_unit, + sc->txb_cnt * ED_PAGE_SIZE * ED_TXBUF_SIZE, + (sc->rec_page_stop - sc->rec_page_start) * ED_PAGE_SIZE, + sc->mem_size); +#endif return (0); } -- Lars Eggert <larse@isi.edu> Information Sciences Institute http://www.isi.edu/larse/ University of Southern California [-- Attachment #2 --] 0# *H 010 + 0 *H 00A#0 *H 010 UZA10UWestern Cape10UDurbanville10 U Thawte10UCertificate Services1(0&UPersonal Freemail RSA 1999.9.160 000824203008Z 010824203008Z0T10 UEggert1 0U*Lars10ULars Eggert10 *H larse@isi.edu00 *H 0 \p9 H;vr∩6"C?mxfJf7I[3CF́L I - zHRVA怤2]0-bL)%X>nӅ w0u0*+e!0 00L2uMyffBNUbNJJcdZ2s0U0 larse@isi.edu0U0 0U#0`fUXFa#Ì0 *H _3 F=%nWY-HXD9UOc6ܰwf@uܶNԄR?Pr}E1֮23mFhySwM_h|d yR=$P 00}0 *H 010 UZA10UWestern Cape10U Cape Town10U Thawte Consulting1(0&UCertification Services Division1$0"UThawte Personal Freemail CA1+0) *H personal-freemail@thawte.com0 990916140140Z 010915140140Z010 UZA10UWestern Cape10UDurbanville10 U Thawte10UCertificate Services1(0&UPersonal Freemail RSA 1999.9.1600 *H 0 iZz]!#rLK~r$BRW{azr98e^eyvL>hput ,O 1ArƦ]D.Mօ>lx~@эWs0FO 7050U0 0U#0rIs4Uvr~wƲ0 *H kY1rr`HU{gapm¥7؝(V\uoƑlfq|ko!6- -mƃRt\~ orzg,ks nΝc) ~U100010 UZA10UWestern Cape10UDurbanville10 U Thawte10UCertificate Services1(0&UPersonal Freemail RSA 1999.9.16#0 + 0 *H 1 *H 0 *H 1 010309023130Z0# *H 1VՒ|RDoe0R *H 1E0C0 *H 0*H 0+0 *H @0 *H (0 *H h<yϐ`ZI,uB᤺_ُcFMH-Cz-#d`vrz1B:j{Pgc^ق`n֤X [ϚTe#
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3AA84082.366458FC>
