Date: Thu, 30 Nov 2000 14:16:59 -0800 From: Lars Eggert <larse@ISI.EDU> To: Warner Losh <imp@village.org>, freebsd-stable@FreeBSD.ORG Subject: Re: Linksys PCMPC100 problem Message-ID: <3A26D1DB.6C8A7701@isi.edu> References: <3A0C38FF.CE45632E@isi.edu> <200011102002.NAA51294@harmony.village.org> <3A0C5B53.2A304A80@isi.edu> <3A158BA6.711D0F04@isi.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a cryptographically signed message in MIME format. --------------ms3DCA202289903FF2905EDD44 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 --------------ms3DCA202289903FF2905EDD44 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIIIIwYJKoZIhvcNAQcCoIIIFDCCCBACAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC BfQwggLYMIICQaADAgECAgMDIwUwDQYJKoZIhvcNAQEEBQAwgZQxCzAJBgNVBAYTAlpBMRUw EwYDVQQIEwxXZXN0ZXJuIENhcGUxFDASBgNVBAcTC0R1cmJhbnZpbGxlMQ8wDQYDVQQKEwZU aGF3dGUxHTAbBgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25h bCBGcmVlbWFpbCBSU0EgMTk5OS45LjE2MB4XDTAwMDgyNDIwMzAwOFoXDTAxMDgyNDIwMzAw OFowVDEPMA0GA1UEBBMGRWdnZXJ0MQ0wCwYDVQQqEwRMYXJzMRQwEgYDVQQDEwtMYXJzIEVn Z2VydDEcMBoGCSqGSIb3DQEJARYNbGFyc2VAaXNpLmVkdTCBnzANBgkqhkiG9w0BAQEFAAOB jQAwgYkCgYEAz1yfcNs53rvhuw8gSDvr2+/snP8GduYY7x7WkJdyvcwb4oipNpWYIkMGP214 Zv1KrgvntGaG+jeugAGQt0n64VusgcIzQ6QDRtnMgdQDTAkVSQ2eLRSQka+nAPx6SFKJg79W EEHmgKQBMtZdMBYtYv/mTOcpm7jTJVg+7W6n04UCAwEAAaN3MHUwKgYFK2UBBAEEITAfAgEA MBowGAIBBAQTTDJ1TXlmZkJOVWJOSkpjZFoyczAYBgNVHREEETAPgQ1sYXJzZUBpc2kuZWR1 MAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUiKvxYINmVfTkWMdGHcBhvSPXw4wwDQYJKoZI hvcNAQEEBQADgYEAi65fM/jSCaPhRoA9JW5X2FktSFhE5zkIpFVPpv33GWPPNrncsK13HfZm s0B1rNy2vU7UhFI/vsJQgBJyffkLFgMCjp3uRZvBBjGD1q4yjDO5yfMMjquqBpZtRp5op3lT d01faA58ZCB5sxCb0ORSxvXR8tc9DJO0JIpQILa6vIAwggMUMIICfaADAgECAgELMA0GCSqG SIb3DQEBBAUAMIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYD VQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9D ZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQwIgYDVQQDExtUaGF3dGUgUGVyc29u YWwgRnJlZW1haWwgQ0ExKzApBgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0 ZS5jb20wHhcNOTkwOTE2MTQwMTQwWhcNMDEwOTE1MTQwMTQwWjCBlDELMAkGA1UEBhMCWkEx FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoT BlRoYXd0ZTEdMBsGA1UECxMUQ2VydGlmaWNhdGUgU2VydmljZXMxKDAmBgNVBAMTH1BlcnNv bmFsIEZyZWVtYWlsIFJTQSAxOTk5LjkuMTYwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB ALNpWpfU0BYLerXFXekhnCNyzRJMS/d+z8f7ynIk9EJSrFeV43theheE5/1yOTiUtOrtZaeS Bl694GX2GbuUeXZMPrlocHWEHPQRdAC8BSxPCQMXMcz0QdRyxqZd4ohEsIsuxE3x8NaFPmzz lZR4kX5A6ZzRjRVXjsJz5TDeRvVPAgMBAAGjNzA1MBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYD VR0jBBgwFoAUcknCczTGVfQLdnKBfnf0h+fGsg4wDQYJKoZIhvcNAQEEBQADgYEAa8ZZ6TH6 6bbssQPY33Jy/pFgSOrGVd178GeOxmFw523CpTfYnbcXKFYFi91cdW/GkZDGbGZxE9AQfGuR b4bgITYtwdfqsgmtzy1txoNSm/u7/pyHnfy36XSS5FyXrvx+rMoNb3J6Zyxrc/WG+Z31AG70 HQfOnZ6CYynvkwl+Vd4xggH3MIIB8wIBATCBnDCBlDELMAkGA1UEBhMCWkExFTATBgNVBAgT DFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEd MBsGA1UECxMUQ2VydGlmaWNhdGUgU2VydmljZXMxKDAmBgNVBAMTH1BlcnNvbmFsIEZyZWVt YWlsIFJTQSAxOTk5LjkuMTYCAwMjBTAJBgUrDgMCGgUAoIGxMBgGCSqGSIb3DQEJAzELBgkq hkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTAwMTEzMDIyMTY1OVowIwYJKoZIhvcNAQkEMRYE FK8unIL1lKS9OyzMD3daJelu6upPMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcwDgYI KoZIhvcNAwICAgCAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgFAMA0GCCqGSIb3DQMCAgEoMA0G CSqGSIb3DQEBAQUABIGAPm2ZcoJS56Fh+gqNwH/T44icLMPt92uqWKmg164RpYzEi54hnZW1 wlCgWlJ+LRCJaJzfzHsOU3huUNUDWXXy5+sBpJ3cTQ3Zzcy3RsjZ2xzOO/TMAtzbKrXQXoDA EGGdBem3zjf3rnInh/HRHmsyctfB1uJrvfGAZaQsdDsPz94= --------------ms3DCA202289903FF2905EDD44-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A26D1DB.6C8A7701>