On Sunday 26 July 2009 21:16:59 Brian Keefer wrote:
> tcpbench reports 90Mbs sending and 88.7Mbps receiving post-patch to a
> PC with an fxp(4) running 4.4-stable.  I don't recall what it was pre-
> patch.

Thanks. The Enable Semi PHY used on the Blade 100 / V120 and other
similar systems most likely doesn't support flow control. It just means
the support is disabled.

> $ ifconfig gem
> gem0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST>
> mtu 1500
>          lladdr 00:03:ba:35:6e:7c
>          priority: 0
>          groups: egress
>          media: Ethernet autoselect (100baseTX full-duplex)
>          status: active
>          inet 173.11.102.1 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet6 fe80::203:baff:fe35:6e7c%gem0 prefixlen 64 scopeid 0x1
>          inet 173.11.102.2 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.3 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.4 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.5 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.6 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.7 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.8 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.9 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.10 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.11 netmask 0xfffffff0 broadcast 173.11.102.15
>          inet 173.11.102.12 netmask 0xfffffff0 broadcast 173.11.102.15
> gem1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST>
> mtu 1500
>          lladdr 00:03:ba:35:6e:7d
>          priority: 0
>          media: Ethernet autoselect (100baseTX full-duplex)
>          status: active
>          inet 172.22.2.126 netmask 0xffffff80 broadcast 172.22.2.127
>          inet6 fe80::203:baff:fe35:6e7d%gem1 prefixlen 64 scopeid 0x2
>
>
> OpenBSD IEEE 1275 Bootblock 1.1
> ..>> OpenBSD BOOT 1.3
> Trying bsd...
> Booting /p...@1f,0/p...@1/s...@8/d...@0,0:a/bsd
> 5964...@0x1000000+7128@0x15b0428+185...@0x1800000+4008728@0x182d4e8
> symbols @ 0xfef6c2c0 81+372216+231756 start=0x1000000
> [ using 604768 bytes of bsd ELF symbol table ]
> console is /p...@1f,0/p...@1,1/i...@7/ser...@0,3f8
> Copyright (c) 1982, 1986, 1989, 1991, 1993
>          The Regents of the University of California.  All rights
> reserved.
> Copyright (c) 1995-2009 OpenBSD. All rights reserved. 
> http://www.OpenBSD.org
>
> OpenBSD 4.6-current (GENERIC) #0: Sun Jul 26 18:02:49 PDT 2009
>      [email protected]:/usr/src/sys/arch/sparc64/compile/GENERIC
> real mem = 1073741824 (1024MB)
> avail mem = 1026121728 (978MB)
> mainbus0 at root: Sun Fire V120 (UltraSPARC-IIe 648MHz)
> cpu0 at mainbus0: SUNW,UltraSPARC-IIe (rev 3.3) @ 648 MHz
> cpu0: physical 16K instruction (32 b/l), 16K data (32 b/l), 512K
> external (64 b)
> psycho0 at mainbus0: SUNW,sabre, impl 0, version 0, ign 7c0
> psycho0: bus range 0-2, PCI bus 0
> psycho0: dvma map c0000000-dfffffff
> pci0 at psycho0
> ppb0 at pci0 dev 1 function 1 "Sun Simba PCI-PCI" rev 0x13
> pci1 at ppb0 bus 1
> ebus0 at pci1 dev 12 function 0 "Sun RIO EBus" rev 0x01
> "flashprom" at ebus0 addr 0-fffff not configured
> clock1 at ebus0 addr 0-1fff: mk48t59
> "SUNW,lomh" at ebus0 addr 200000-200003 ivec 0x2a not configured
> alipm0 at pci1 dev 3 function 0 "Acer Labs M7101 Power" rev 0x00:
> 74KHz clock
> iic0 at alipm0
> "max1617" at alipm0 addr 0x18 skipped due to alipm0 bugs
> spdmem0 at iic0 addr 0x54: 512MB SDRAM registered ECC PC133CL2
> spdmem1 at iic0 addr 0x55: 512MB SDRAM registered ECC PC133CL2
> ebus1 at pci1 dev 7 function 0 "Acer Labs M1533 ISA" rev 0x00
> power0 at ebus1 addr 2000-2007 ivec 0x25
> com0 at ebus1 addr 3f8-3ff ivec 0x2b: ns16550a, 16 byte fifo
> com0: console
> com1 at ebus1 addr 2e8-2ef ivec 0x2b: ns16550a, 16 byte fifo
> gem0 at pci1 dev 12 function 1 "Sun ERI Ether" rev 0x01: ivec 0x7c6,
> address 00c
> ukphy0 at gem0 phy 1: Generic IEEE 802.3u media interface, rev. 1: OUI
> 0x0010dd2
> ohci0 at pci1 dev 12 function 3 "Sun USB" rev 0x01: ivec 0x7e4,
> version 1.0, let
> pciide0 at pci1 dev 13 function 0 "Acer Labs M5229 UDMA IDE" rev 0xc3:
> DMA, chaI
> pciide0: using ivec 0x7cc for native-PCI interrupt
> atapiscsi0 at pciide0 channel 0 drive 0
> scsibus0 at atapiscsi0: 2 targets
> cd0 at scsibus0 targ 0 lun 0: <TEAC, CD-224E, P.9A> ATAPI 5/cdrom
> removable
> cd0(pciide0:0:0): using PIO mode 4, DMA mode 2
> pciide0: channel 1 disabled (no drives)
> gem1 at pci1 dev 5 function 1 "Sun ERI Ether" rev 0x01: ivec 0x7dc,
> address 00:d
> ukphy1 at gem1 phy 1: Generic IEEE 802.3u media interface, rev. 1: OUI
> 0x0010dd2
> ohci1 at pci1 dev 5 function 3 "Sun USB" rev 0x01: ivec 0x7e6, version
> 1.0, legt
> usb0 at ohci0: USB revision 1.0
> uhub0 at usb0 "Sun OHCI root hub" rev 1.00/1.00 addr 1
> usb1 at ohci1: USB revision 1.0
> uhub1 at usb1 "Sun OHCI root hub" rev 1.00/1.00 addr 1
> ppb1 at pci0 dev 1 function 0 "Sun Simba PCI-PCI" rev 0x13
> pci2 at ppb1 bus 2
> siop0 at pci2 dev 8 function 0 "Symbios Logic 53c896" rev 0x07: ivec
> 0x7e0, usiM
> scsibus1 at siop0: 16 targets, initiator 7
> sd0 at scsibus1 targ 0 lun 0: <SEAGATE, ST336607LSUN36G, 0207> SCSI3 0/
> direct fd
> sd0: 34732MB, 512 bytes/sec, 71132959 sec total
> siop1 at pci2 dev 8 function 1 "Symbios Logic 53c896" rev 0x07: ivec
> 0x7e0, usiM
> scsibus2 at siop1: 16 targets, initiator 7
> uhci0 at pci2 dev 5 function 0 "VIA VT83C572 USB" rev 0x62: ivec 0x7d5
> uhci1 at pci2 dev 5 function 1 "VIA VT83C572 USB" rev 0x62: ivec 0x7c5
> ehci0 at pci2 dev 5 function 2 "VIA VT6202 USB" rev 0x65: ivec 0x7d4
> usb2 at ehci0: USB revision 2.0
> uhub2 at usb2 "VIA EHCI root hub" rev 2.00/1.00 addr 1
> "VIA VT6306 FireWire" rev 0x80 at pci2 dev 5 function 3 not configured
> usb3 at uhci0: USB revision 1.0
> uhub3 at usb3 "VIA UHCI root hub" rev 1.00/1.00 addr 1
> usb4 at uhci1: USB revision 1.0
> uhub4 at usb4 "VIA UHCI root hub" rev 1.00/1.00 addr 1
> umass0 at uhub2 port 4 configuration 1 interface 0 "Lexar JD FireFly"
> rev 2.00/2
> umass0: using SCSI over Bulk-Only
> scsibus3 at umass0: 2 targets, initiator 0
> sd1 at scsibus3 targ 1 lun 0: <Lexar, JD FireFly, 1100> SCSI0 0/direct
> removable
> sd1: 1912MB, 512 bytes/sec, 3915776 sec total
> softraid0 at root
> siop0: target 0 now using tagged 16 bit 40.0 MHz 31 REQ/ACK offset xfers
> bootpath: /p...@1f,0/p...@1,0/s...@8,0/d...@0,0
> root on sd0a swap on sd0b dump on sd0b
>
> --
> bk
>
> On Jul 25, 2009, at 4:14 AM, Brad wrote:
> > Please test the following diff which adds flow control support
> > with any gem(4) adapter.
> >
> > Please provide a dmesg and "ifconfig gemX" output.
> >
> >
> > Index: gem.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/ic/gem.c,v
> > retrieving revision 1.92
> > diff -u -p -r1.92 gem.c
> > --- gem.c   18 Jul 2009 14:42:47 -0000      1.92
> > +++ gem.c   25 Jul 2009 10:22:23 -0000
> > @@ -134,7 +134,7 @@ gem_config(struct gem_softc *sc)
> >     struct ifnet *ifp = &sc->sc_arpcom.ac_if;
> >     struct mii_data *mii = &sc->sc_mii;
> >     struct mii_softc *child;
> > -   int i, error, phyad;
> > +   int i, error, mii_flags, phyad;
> >     struct ifmedia_entry *ifm;
> >
> >     /* Make sure the chip is stopped. */
> > @@ -248,6 +248,8 @@ gem_config(struct gem_softc *sc)
> >
> >     gem_mifinit(sc);
> >
> > +   mii_flags = MIIF_DOPAUSE;
> > +
> >     /*
> >      * Look for an external PHY.
> >      */
> > @@ -266,7 +268,7 @@ gem_config(struct gem_softc *sc)
> >             }
> >
> >             mii_attach(&sc->sc_dev, mii, 0xffffffff, phyad,
> > -               MII_OFFSET_ANY, 0);
> > +               MII_OFFSET_ANY, mii_flags);
> >     }
> >
> >     /*
> > @@ -292,7 +294,7 @@ gem_config(struct gem_softc *sc)
> >             }
> >
> >             mii_attach(&sc->sc_dev, mii, 0xffffffff, phyad,
> > -               MII_OFFSET_ANY, 0);
> > +               MII_OFFSET_ANY, mii_flags);
> >     }
> >
> >     /*
> > @@ -314,8 +316,10 @@ gem_config(struct gem_softc *sc)
> >             mii->mii_readreg = gem_pcs_readreg;
> >             mii->mii_writereg = gem_pcs_writereg;
> >
> > +           mii_flags |= MIIF_NOISOLATE;
> > +
> >             mii_attach(&sc->sc_dev, mii, 0xffffffff, MII_PHY_ANY,
> > -               MII_OFFSET_ANY, MIIF_NOISOLATE);
> > +               MII_OFFSET_ANY, mii_flags);
> >     }
> >
> >     child = LIST_FIRST(&mii->mii_phys);
> > @@ -873,8 +877,8 @@ gem_init_regs(struct gem_softc *sc)
> >     bus_space_write_4(t, h, GEM_MAC_RX_CRC_ERR_CNT, 0);
> >     bus_space_write_4(t, h, GEM_MAC_RX_CODE_VIOL, 0);
> >
> > -   /* Un-pause stuff */
> > -   bus_space_write_4(t, h, GEM_MAC_SEND_PAUSE_CMD, 0);
> > +   /* Set XOFF PAUSE time */
> > +   bus_space_write_4(t, h, GEM_MAC_SEND_PAUSE_CMD, 0x1BF0);
> >
> >     /*
> >      * Set the internal arbitration to "infinite" bursts of the
> > @@ -1331,6 +1335,17 @@ gem_mii_statchg(struct device *dev)
> >             v &= ~GEM_MAC_XIF_GMII_MODE;
> >     }
> >     bus_space_write_4(t, mac, GEM_MAC_XIF_CONFIG, v);
> > +
> > +   /*
> > +    * 802.3x flow control
> > +    */
> > +   v = bus_space_read_4(t, mac, GEM_MAC_CONTROL_CONFIG);
> > +   v &= ~(GEM_MAC_CC_RX_PAUSE | GEM_MAC_CC_TX_PAUSE);
> > +   if ((IFM_OPTIONS(sc->sc_mii.mii_media_active) & IFM_ETH_RXPAUSE) !
> > = 0)
> > +           v |= GEM_MAC_CC_RX_PAUSE;
> > +   if ((IFM_OPTIONS(sc->sc_mii.mii_media_active) & IFM_ETH_TXPAUSE) !
> > = 0)
> > +           v |= GEM_MAC_CC_TX_PAUSE;
> > +   bus_space_write_4(t, mac, GEM_MAC_CONTROL_CONFIG, v);
> > }
> >
> > int
> >
> > --
> > This message has been scanned for viruses and
> > dangerous content by MailScanner, and is
> > believed to be clean.

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

Reply via email to