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.
