Date: Tue, 6 Nov 2001 10:13:08 -0800 (PST) From: Daniel Rudy <dcrudy@pacbell.net> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/31804: Clearing PME mode kills network performance on NatSemi DP83815 using sis driver Message-ID: <200111061813.fA6ID8d68618@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 31804 >Category: kern >Synopsis: Clearing PME mode kills network performance on NatSemi DP83815 using sis driver >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Nov 06 10:20:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: Daniel Rudy >Release: 4.4-STABLE >Organization: None >Environment: FreeBSD wildfire.pacbell.net 4.4-STABLE FreeBSD 4.4-STABLE #2: Tue Nov 6 01:37:52 PST 2001 root@strata.pacbell.net:/usr/src/sys/compile/WILDFIRE i386 >Description: Refer to PR-31737. Network performance under full-duplex is greatly reduced. Symptoms of this failure is with NFS or FTP where file sizes are greater than about 60K. The network slows down to a crawl and then quits. The same problem is experienced with MS Windows machines when communicating to FreeBSD machines. MS Windows based machines do not exhibit the same problem when communicating to other MS Windows based machines. Network cards involved are Netgear FA-312 series. All machines involved have the same network card. 100BaseTX Full Duplex mode has been verified on all machines, both FreeBSD and Windows, and the switch registers full duplex link as well. The hub that is used is a NDC Communications NSH510 10/100 Autosensing 5-port switch. The problem does not show up under half duplex mode. And furthermore, it is not a hardware interaction problem between the switch and the network interface card because this DID work in 4.2 and the only thing that has changed on my end is the FreeBSD load on the machines. By the actions that I have taken, it appears that clearing the PME mode in the chip init code kills network performance when it comes to large file transfers. >How-To-Repeat: Netgear FA-312 NICs to full duplex mode using any mainboard. I'm using a FIC, DFI, and DTK boards in my computers. >Fix: static void sis_reset(sc) struct sis_softc *sc; { register int i; SIS_SETBIT(sc, SIS_CSR, SIS_CSR_RESET); for (i = 0; i < SIS_TIMEOUT; i++) { if (!(CSR_READ_4(sc, SIS_CSR) & SIS_CSR_RESET)) break; } if (i == SIS_TIMEOUT) printf("sis%d: reset never completed\n", sc->sis_unit); /* Wait a little while for the chip to get its brains in order. */ DELAY(1000); /* * If this is a NetSemi chip, make sure to clear * PME mode. */ /* if (sc->sis_type == SIS_TYPE_83815) { CSR_WRITE_4(sc, NS_CLKRUN, NS_CLKRUN_PMESTS); CSR_WRITE_4(sc, NS_CLKRUN, 0); } commented out for testing pourposes */ return; } Commenting out the section of code dealing with Power Manegement Event mode fixes the problem, at least for me and my hardware. >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200111061813.fA6ID8d68618>