Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Nov 2001 14:26:19 EST
From:      Master589095296@aol.com
To:        freebsd-stable@freebsd.org
Subject:   Network performance issue between half and full duplex
Message-ID:  <f8.12092e71.2916f05b@aol.com>

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

--part1_f8.12092e71.2916f05b_boundary
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit

Hello,

       I have been experiancing a problem with 4.4 stable 10-29-2001.  I'm 
using a Netgear FA-312 which uses the sis driver.  This card is also used in 
the two Microshaft Windblows 98 machines as well.  When in full duplex and 
when transfering files >60KB, the connection slows and then quits.  This 
happens with both FTP and NFS.  The two Winblows boxes when connected to FBSD 
boxes also experiance the same problem, but are ok when talking to each 
other.  The drivers in both the FBSD boxes and Windows boxes and the switch 
show that full duplex mode is in effect.  I have rolled ports and cables and 
the problem stays with the FBSD machines.  Also note that I did not have this 
problem under 4.2.  I have switched everything to half duplex mode and it 
seems to be working correctly.  I have narrowed it down to one of two things:

1) It is a problem with the switch.
2) It is a problem with the sis driver.

One more interesting thing to note.  The following peice of source code does 
not appear in 4.2, but it is present in 4.4:

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);
        }

        return;
}


Anyone have any idea what PME mode is?

Dan.


--part1_f8.12092e71.2916f05b_boundary
Content-Type: text/html; charset="US-ASCII"
Content-Transfer-Encoding: 7bit

<HTML><FONT FACE=arial,helvetica><FONT  SIZE=2>Hello,
<BR>
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I have been experiancing a problem with 4.4 stable 10-29-2001. &nbsp;I'm using a Netgear FA-312 which uses the sis driver. &nbsp;This card is also used in the two Microshaft Windblows 98 machines as well. &nbsp;When in full duplex and when transfering files &gt;60KB, the connection slows and then quits. &nbsp;This happens with both FTP and NFS. &nbsp;The two Winblows boxes when connected to FBSD boxes also experiance the same problem, but are ok when talking to each other. &nbsp;The drivers in both the FBSD boxes and Windows boxes and the switch show that full duplex mode is in effect. &nbsp;I have rolled ports and cables and the problem stays with the FBSD machines. &nbsp;Also note that I did not have this problem under 4.2. &nbsp;I have switched everything to half duplex mode and it seems to be working correctly. &nbsp;I have narrowed it down to one of two things:
<BR>
<BR>1) It is a problem with the switch.
<BR>2) It is a problem with the sis driver.
<BR>
<BR>One more interesting thing to note. &nbsp;The following peice of source code does not appear in 4.2, but it is present in 4.4:
<BR>
<BR>static void sis_reset(sc)
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct sis_softc &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*sc;
<BR>{
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;register int &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i;
<BR>
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SIS_SETBIT(sc, SIS_CSR, SIS_CSR_RESET);
<BR>
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (i = 0; i &lt; SIS_TIMEOUT; i++) {
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!(CSR_READ_4(sc, SIS_CSR) &amp; SIS_CSR_RESET))
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
<BR>
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (i == SIS_TIMEOUT)
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("sis%d: reset never completed\n", sc-&gt;sis_unit);
<BR>
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* Wait a little while for the chip to get its brains in order. */
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DELAY(1000);
<BR>
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* If this is a NetSemi chip, make sure to clear
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* PME mode.
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (sc-&gt;sis_type == SIS_TYPE_83815) {
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSR_WRITE_4(sc, NS_CLKRUN, NS_CLKRUN_PMESTS);
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSR_WRITE_4(sc, NS_CLKRUN, 0);
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
<BR>
<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;
<BR>}
<BR>
<BR>
<BR>Anyone have any idea what PME mode is?
<BR>
<BR>Dan.
<BR></FONT></HTML>

--part1_f8.12092e71.2916f05b_boundary--

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?f8.12092e71.2916f05b>