From nobody@FreeBSD.org  Sat May 12 17:29:39 2012
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2CE26106566C
	for <freebsd-gnats-submit@FreeBSD.org>; Sat, 12 May 2012 17:29:39 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id 17DE88FC0C
	for <freebsd-gnats-submit@FreeBSD.org>; Sat, 12 May 2012 17:29:39 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.4/8.14.4) with ESMTP id q4CHTcx1081164
	for <freebsd-gnats-submit@FreeBSD.org>; Sat, 12 May 2012 17:29:38 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.4/8.14.4/Submit) id q4CHTcf4081163;
	Sat, 12 May 2012 17:29:38 GMT
	(envelope-from nobody)
Message-Id: <201205121729.q4CHTcf4081163@red.freebsd.org>
Date: Sat, 12 May 2012 17:29:38 GMT
From: Christopher May <Maquis196@googlemail.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: RTL8111/8168B Issues (stalling/only 100Mb)
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         167827
>Category:       kern
>Synopsis:       [re] RTL8111/8168B Issues (stalling/only 100Mb)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    yongari
>State:          feedback
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat May 12 17:30:12 UTC 2012
>Closed-Date:    
>Last-Modified:  Sun May 20 06:20:01 UTC 2012
>Originator:     Christopher May
>Release:        9.0-RELEASE
>Organization:
the OTHER media
>Environment:
FreeBSD crane.maquis196.eu 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
On the Asus E45M1-I Deluxe motherboard the onboard NIC is a Realtek 8111E Gigabit. 

pciconf -lv output;

re0@pci0:4:0:0:	class=0x020000 card=0x84321043 chip=0x816810ec rev=0x06 hdr=0x00
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL8111/8168B PCI Express Gigabit Ethernet controller'
    class      = network

Now this motherboard only syncs to the gigabit switch at 100Mb. When rsyncing I can only get ~6.7Mb/s out of it right until it stalls and once that happens it doesn't resume.

The official Realtek drivers don't support BSD9 (errors in compile). I've enabled the stats and got this after stopping rsync;

re0 statistics:
Tx frames : 83761
Rx frames : 44381
Tx errors : 0
Rx errors : 0
Rx missed frames : 0
Rx frame alignment errs : 0
Tx single collisions : 0
Tx multiple collisions : 0
Rx unicast frames : 44040
Rx broadcast frames : 341
Rx multicast frames : 0
Tx aborts : 0
Tx underruns : 0

I saw it mentioned in forum about others having this problem but couldn't find any PR's for it. So apologies if this is dupe. I'm able to run any tests anyone requests on this.


>How-To-Repeat:
Just use the NIC.
>Fix:


>Release-Note:
>Audit-Trail:

From: Christopher May <maquis196@gmail.com>
To: bug-followup@FreeBSD.org, Maquis196@googlemail.com
Cc:  
Subject: Re: amd64/167827: RTL8111/8168B Issues (stalling/only 100Mb)
Date: Sat, 12 May 2012 21:07:30 +0100

 Followup... (sorry, first BR if I'm doing this wrong)
 
 I can send data to the bsd box at it will run flat out at 11Mb/s. I
 tried sending the data back and it managed exactly  32768 bytes before
 it stalled. I've tried different MTU sizes, and rate limits on rsync.
 Nothing I've tried so far has worked. Hope this information helps a
 bit.
 
 P.S - willing to run whatever debug, patches, trials or tests to help fix this.
 
 Cheers,
 Chris

From: Christopher May <maquis196@gmail.com>
To: bug-followup@FreeBSD.org, Maquis196@googlemail.com
Cc:  
Subject: Re: amd64/167827: RTL8111/8168B Issues (stalling/only 100Mb)
Date: Sat, 12 May 2012 22:46:37 +0100

 After more testing it seems an scp will run at link speed if I pull
 the file from another box. The issue is pushing data and I'm unsure
 what else I can test at this point. Hope it helps.
 
 Chris
State-Changed-From-To: open->feedback 
State-Changed-By: yongari 
State-Changed-When: Mon May 14 04:38:47 UTC 2012 
State-Changed-Why:  
If the issue happens only when you use rsync the issue could be 
different thing. To narrow down the issue, exclude any disk IOs 
(e.g. rsync) and try benchmark re(4) with netperf.  Depending on 
controller models, performance number may vary but you should be 
able to get more than 700Mbps without TSO. With TSO, you may be 
able to get 700-930Mbps. 
If you still see the issue with netperf, show me the output of 
dmesg(8) and 'ifconfig re0'. 


Responsible-Changed-From-To: freebsd-amd64->yongari 
Responsible-Changed-By: yongari 
Responsible-Changed-When: Mon May 14 04:38:47 UTC 2012 
Responsible-Changed-Why:  
Grab. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=167827 

From: Christopher May <maquis196@gmail.com>
To: bug-followup@FreeBSD.org, Maquis196@googlemail.com
Cc:  
Subject: Re: amd64/167827: RTL8111/8168B Issues (stalling/only 100Mb)
Date: Mon, 14 May 2012 22:14:32 +0100

 Hi, thanks for the followup! Netperf to my main machine produces the
 following results;
 
 [root@crane ~]# netperf -H 192.168.1.30
 MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to
 192.168.1.30 (192.168.1.30) port 0 AF_INET
 Recv   Send    Send
 Socket Socket  Message  Elapsed
 Size   Size    Size     Time     Throughput
 bytes  bytes   bytes    secs.    10^6bits/sec
 
  87380  32768  32768    10.13      94.14
 
 Now what's interesting is that I tried to force the issue with the following;
 
 ifconfig_re0="inet 192.168.1.120 netmask 255.255.255.0 media
 1000baseT/UTP mediaopt full-duplex"
 
 and after the link went up and down a few times (based on observation
 of the switch) the box crashed. I had to reboot, nothing else even got
 me a terminal. The other difference between this box and my linux
 server is that the socket and message sizes are 16k each yet 32k on
 BSD.
 
 Also, I created a ramdisk to avoid disk io and same issue;
 
 [root@crane /mnt/tmp]# dd if=/dev/urandom of=./test.img bs=1024 count=502400
 502400+0 records in
 502400+0 records out
 514457600 bytes transferred in 20.235369 secs (25423683 bytes/sec)
 [root@crane /mnt/tmp]# ls -alh
 total 502570
 drwxr-xr-x  3 root  wheel      512B May 15 05:10 .
 drwxr-xr-x  3 root  wheel        3B May 15 05:06 ..
 drwxrwxr-x  2 root  operator   512B May 15 05:09 .snap
 -rw-r--r--  1 root  wheel      490M May 15 05:10 test.img
 [root@crane /mnt/tmp]# scp test.img root@192.168.1.30:/root/
 Password:
 test.img
      0%  592KB 254.8KB/s - stalled -
 
 -------------------------- dmesg ---------------------
 Copyright (c) 1992-2012 The FreeBSD Project.
 Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
 	The Regents of the University of California. All rights reserved.
 FreeBSD is a registered trademark of The FreeBSD Foundation.
 FreeBSD 9.0-RELEASE #0: Tue Jan  3 07:46:30 UTC 2012
     root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
 CPU: AMD E-450 APU with Radeon(tm) HD Graphics (1649.98-MHz K8-class CPU)
   Origin = "AuthenticAMD"  Id = 0x500f20  Family = 14  Model = 2  Stepping = 0
   Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
   Features2=0x802209<SSE3,MON,SSSE3,CX16,POPCNT>
   AMD Features=0x2e500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM>
   AMD Features2=0x35ff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,IBS,SKINIT,WDT>
   TSC: P-state invariant, performance statistics
 real memory  = 8589934592 (8192 MB)
 avail memory = 7808147456 (7446 MB)
 Event timer "LAPIC" quality 400
 ACPI APIC Table: <ALASKA A M I>
 FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 FreeBSD/SMP: 1 package(s) x 2 core(s)
  cpu0 (BSP): APIC ID:  0
  cpu1 (AP): APIC ID:  1
 ACPI Warning: Optional field Pm2ControlBlock has zero address or
 length: 0x0000000000000000/0x1 (20110527/tbfadt-586)
 ioapic0: Changing APIC ID to 0
 ioapic0 <Version 2.1> irqs 0-23 on motherboard
 kbd1 at kbdmux0
 acpi0: <ALASKA A M I> on motherboard
 ACPI Error: [RAMB] Namespace lookup failure, AE_NOT_FOUND (20110527/psargs-392)
 ACPI Exception: AE_NOT_FOUND, Could not execute arguments for [RAMW]
 (Region) (20110527/nsinit-380)
 acpi0: Power Button (fixed)
 Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
 acpi_timer0: <32-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
 cpu0: <ACPI CPU> on acpi0
 cpu1: <ACPI CPU> on acpi0
 hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
 Timecounter "HPET" frequency 14318180 Hz quality 950
 Event timer "HPET" frequency 14318180 Hz quality 550
 Event timer "HPET1" frequency 14318180 Hz quality 450
 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
 pci0: <ACPI PCI bus> on pcib0
 vgapci0: <VGA-compatible display> port 0xf000-0xf0ff mem
 0xc0000000-0xcfffffff,0xfeb00000-0xfeb3ffff irq 18 at device 1.0 on
 pci0
 hdac0: <ATI (Unknown) High Definition Audio Controller> mem
 0xfeb44000-0xfeb47fff irq 19 at device 1.1 on pci0
 pcib1: <ACPI PCI-PCI bridge> irq 16 at device 4.0 on pci0
 pci1: <ACPI PCI bus> on pcib1
 ahci0: <ATI IXP700 AHCI SATA controller> port
 0xf140-0xf147,0xf130-0xf133,0xf120-0xf127,0xf110-0xf113,0xf100-0xf10f
 mem 0xfeb4f000-0xfeb4f3ff irq 19 at device 17.0 on pci0
 ahci0: AHCI v1.20 with 6 6Gbps ports, Port Multiplier supported
 ahcich0: <AHCI channel> at channel 0 on ahci0
 ahcich1: <AHCI channel> at channel 1 on ahci0
 ahcich2: <AHCI channel> at channel 2 on ahci0
 ahcich3: <AHCI channel> at channel 3 on ahci0
 ahcich4: <AHCI channel> at channel 4 on ahci0
 ahcich5: <AHCI channel> at channel 5 on ahci0
 ohci0: <OHCI (generic) USB controller> mem 0xfeb4e000-0xfeb4efff irq
 18 at device 18.0 on pci0
 usbus0: <OHCI (generic) USB controller> on ohci0
 ehci0: <EHCI (generic) USB 2.0 controller> mem 0xfeb4d000-0xfeb4d0ff
 irq 17 at device 18.2 on pci0
 usbus1: EHCI version 1.0
 usbus1: <EHCI (generic) USB 2.0 controller> on ehci0
 ohci1: <OHCI (generic) USB controller> mem 0xfeb4c000-0xfeb4cfff irq
 18 at device 19.0 on pci0
 usbus2: <OHCI (generic) USB controller> on ohci1
 ehci1: <EHCI (generic) USB 2.0 controller> mem 0xfeb4b000-0xfeb4b0ff
 irq 17 at device 19.2 on pci0
 usbus3: EHCI version 1.0
 usbus3: <EHCI (generic) USB 2.0 controller> on ehci1
 pci0: <serial bus, SMBus> at device 20.0 (no driver attached)
 hdac1: <ATI SB600 High Definition Audio Controller> mem
 0xfeb40000-0xfeb43fff irq 16 at device 20.2 on pci0
 isab0: <PCI-ISA bridge> at device 20.3 on pci0
 isa0: <ISA bus> on isab0
 pcib2: <ACPI PCI-PCI bridge> at device 20.4 on pci0
 pci2: <ACPI PCI bus> on pcib2
 ohci2: <OHCI (generic) USB controller> mem 0xfeb4a000-0xfeb4afff irq
 18 at device 20.5 on pci0
 usbus4: <OHCI (generic) USB controller> on ohci2
 pcib3: <ACPI PCI-PCI bridge> at device 21.0 on pci0
 pci3: <ACPI PCI bus> on pcib3
 ath0: <Atheros 9285> mem 0xfea00000-0xfea0ffff irq 16 at device 0.0 on pci3
 ath0: AR9285 mac 192.2 RF5133 phy 14.0
 pcib4: <ACPI PCI-PCI bridge> at device 21.1 on pci0
 pci4: <ACPI PCI bus> on pcib4
 re0: <RealTek 8168/8111 B/C/CP/D/DP/E PCIe Gigabit Ethernet> port
 0xe000-0xe0ff mem 0xd0004000-0xd0004fff,0xd0000000-0xd0003fff irq 17
 at device 0.0 on pci4
 re0: Using 1 MSI-X message
 re0: Chip rev. 0x2c000000
 re0: MAC rev. 0x00000000
 miibus0: <MII bus> on re0
 rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 1 on miibus0
 rgephy0:  none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX,
 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT, 1000baseT-master,
 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow,
 1000baseT-FDX-flow-master, auto, auto-flow
 re0: Ethernet address: c8:60:00:bc:f1:33
 pcib5: <ACPI PCI-PCI bridge> at device 21.2 on pci0
 pci5: <ACPI PCI bus> on pcib5
 xhci0: <XHCI (generic) USB 3.0 controller> mem 0xfe900000-0xfe901fff
 irq 18 at device 0.0 on pci5
 xhci0: 32 byte context size.
 usbus5 on xhci0
 pcib6: <ACPI PCI-PCI bridge> at device 21.3 on pci0
 pci6: <ACPI PCI bus> on pcib6
 xhci1: <XHCI (generic) USB 3.0 controller> mem 0xfe800000-0xfe801fff
 irq 19 at device 0.0 on pci6
 xhci1: 32 byte context size.
 usbus6 on xhci1
 ohci3: <OHCI (generic) USB controller> mem 0xfeb49000-0xfeb49fff irq
 18 at device 22.0 on pci0
 usbus7: <OHCI (generic) USB controller> on ohci3
 ehci2: <EHCI (generic) USB 2.0 controller> mem 0xfeb48000-0xfeb480ff
 irq 17 at device 22.2 on pci0
 usbus8: EHCI version 1.0
 usbus8: <EHCI (generic) USB 2.0 controller> on ehci2
 acpi_button0: <Power Button> on acpi0
 attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0
 Timecounter "i8254" frequency 1193182 Hz quality 0
 Event timer "i8254" frequency 1193182 Hz quality 100
 atrtc0: <AT realtime clock> port 0x70-0x71 irq 8 on acpi0
 Event timer "RTC" frequency 32768 Hz quality 0
 uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
 sc0: <System console> at flags 0x100 on isa0
 sc0: VGA <16 virtual consoles, flags=0x300>
 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
 atkbd0: <AT Keyboard> irq 1 on atkbdc0
 kbd0 at atkbd0
 atkbd0: [GIANT-LOCKED]
 ppc0: cannot reserve I/O port range
 acpi_throttle0: <ACPI CPU Throttling> on cpu0
 hwpstate0: <Cool`n'Quiet 2.0> on cpu0
 acpi_throttle1: <ACPI CPU Throttling> on cpu1
 acpi_throttle1: failed to attach P_CNT
 device_attach: acpi_throttle1 attach returned 6
 ZFS filesystem version 5
 ZFS storage pool version 28
 Timecounters tick every 1.000 msec
 hdac0: HDA Codec #0: ATI R6xx HDMI
 pcm0: <HDA ATI R6xx HDMI PCM #0 HDMI> at cad 0 nid 1 on hdac0
 hdac1: HDA Codec #0: Realtek ALC892
 pcm1: <HDA Realtek ALC892 PCM #0 Analog> at cad 0 nid 1 on hdac1
 pcm2: <HDA Realtek ALC892 PCM #1 Analog> at cad 0 nid 1 on hdac1
 pcm3: <HDA Realtek ALC892 PCM #2 Digital> at cad 0 nid 1 on hdac1
 pcm4: <HDA Realtek ALC892 PCM #3 Digital> at cad 0 nid 1 on hdac1
 usbus0: 12Mbps Full Speed USB v1.0
 usbus1: 480Mbps High Speed USB v2.0
 usbus2: 12Mbps Full Speed USB v1.0
 usbus3: 480Mbps High Speed USB v2.0
 usbus4: 12Mbps Full Speed USB v1.0
 usbus5: 5.0Gbps Super Speed USB v3.0
 usbus6: 5.0Gbps Super Speed USB v3.0
 usbus7: 12Mbps Full Speed USB v1.0
 usbus8: 480Mbps High Speed USB v2.0
 ugen0.1: <ATI> at usbus0
 uhub0: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
 ugen1.1: <ATI> at usbus1
 uhub1: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
 ugen2.1: <ATI> at usbus2
 uhub2: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
 ugen3.1: <ATI> at usbus3
 uhub3: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3
 ugen4.1: <ATI> at usbus4
 uhub4: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus4
 ugen5.1: <0x1033> at usbus5
 uhub5: <0x1033 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus5
 ugen6.1: <0x1033> at usbus6
 uhub6: <0x1033 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus6
 ugen7.1: <ATI> at usbus7
 uhub7: <ATI OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus7
 ugen8.1: <ATI> at usbus8
 uhub8: <ATI EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus8
 ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
 ada0: <WDC WD30EZRX-00MMMB0 80.00A80> ATA-8 SATA 3.x device
 ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
 ada0: Command Queueing enabled
 ada0: 2861588MB (5860533168 512 byte sectors: 16H 63S/T 16383C)
 ada0: Previously was known as ad4
 ada1 at ahcich1 bus 0 scbus1 target 0 lun 0
 ada1: <WDC WD30EZRX-00MMMB0 80.00A80> ATA-8 SATA 3.x device
 ada1: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
 ada1: Command Queueing enabled
 ada1: 2861588MB (5860533168 512 byte sectors: 16H 63S/T 16383C)
 ada1: Previously was known as ad6
 ada2 at ahcich2 bus 0 scbus2 target 0 lun 0
 ada2: <WDC WD30EZRX-00MMMB0 80.00A80> ATA-8 SATA 3.x device
 ada2: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
 ada2: Command Queueing enabled
 ada2: 2861588MB (5860533168 512 byte sectors: 16H 63S/T 16383C)
 ada2: Previously was known as ad8
 ada3 at ahcich3 bus 0 scbus3 target 0 lun 0
 ada3: <WDC WD30EZRX-00MMMB0 80.00A80> ATA-8 SATA 3.x device
 ada3: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
 ada3: Command Queueing enabled
 ada3: 2861588MB (5860533168 512 byte sectors: 16H 63S/T 16383C)
 ada3: Previously was known as ad10
 SMP: AP CPU #1 Launched!
 Timecounter "TSC-low" frequency 12890485 Hz quality 800
 uhub4: 2 ports with 2 removable, self powered
 uhub7: 4 ports with 4 removable, self powered
 uhub0: 5 ports with 5 removable, self powered
 uhub2: 5 ports with 5 removable, self powered
 uhub5: 4 ports with 4 removable, self powered
 uhub6: 4 ports with 4 removable, self powered
 ugen5.2: <Logitech> at usbus5
 ukbd0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on usbus5
 kbd2 at ukbd0
 ums0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on usbus5
 ums0: 16 buttons and [XYZT] coordinates ID=2
 uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/12.01, addr 1> on usbus5
 uhub8: 4 ports with 4 removable, self powered
 uhub1: 5 ports with 5 removable, self powered
 uhub3: 5 ports with 5 removable, self powered
 Trying to mount root from zfs:zroot []...
 ugen7.2: <vendor 0x0cf3> at usbus7
 re0: link state changed to UP
 re0: link state changed to DOWN
 re0: link state changed to UP
 
 
 ---------- ifconfig --------------
 
 [root@crane /mnt/tmp]# ifconfig
 ath0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 2290
 	ether 74:2f:68:29:7e:92
 	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 	media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
 	status: no carrier
 re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
 	options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
 	ether c8:60:00:bc:f1:33
 	inet 192.168.1.120 netmask 0xffffff00 broadcast 192.168.1.255
 	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 	media: Ethernet autoselect (100baseTX <full-duplex>)
 	status: active
 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
 	options=3<RXCSUM,TXCSUM>
 	inet6 ::1 prefixlen 128
 	inet6 fe80::1%lo0 prefixlen 64 scopeid 0xc
 	inet 127.0.0.1 netmask 0xff000000
 	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

From: YongHyeon PYUN <pyunyh@gmail.com>
To: Christopher May <maquis196@gmail.com>
Cc: yongari@freebsd.org, bug-followup@FreeBSD.org
Subject: Re: amd64/167827: RTL8111/8168B Issues (stalling/only 100Mb)
Date: Tue, 15 May 2012 09:59:14 -0700

 On Mon, May 14, 2012 at 09:20:09PM +0000, Christopher May wrote:
 
 [...]
 
 >  Hi, thanks for the followup! Netperf to my main machine produces the
 >  following results;
 >  
 >  [root@crane ~]# netperf -H 192.168.1.30
 >  MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to
 >  192.168.1.30 (192.168.1.30) port 0 AF_INET
 >  Recv   Send    Send
 >  Socket Socket  Message  Elapsed
 >  Size   Size    Size     Time     Throughput
 >  bytes  bytes   bytes    secs.    10^6bits/sec
 >  
 >   87380  32768  32768    10.13      94.14
 
 Ok, it saturated the established link and seems to have no issue in
 transmit path.
 
 >  
 >  Now what's interesting is that I tried to force the issue with the following;
 >  
 >  ifconfig_re0="inet 192.168.1.120 netmask 255.255.255.0 media
 >  1000baseT/UTP mediaopt full-duplex"
 >  
 
 Please don't do that.  For 1000baseT link, you should always use
 auto-negotiation.  If you have to use manual link configuration to
 handle broken switches, the link partner also should be forced to
 use the same manual configuration. For that case, the negotiated
 link is half-duplex. Sometimes you may not be able to establish a
 1000baseT link at all.
 
 >  and after the link went up and down a few times (based on observation
 >  of the switch) the box crashed. I had to reboot, nothing else even got
 
 I have no idea how this can happen. Did system panic? If yes, could
 you show me the output of backtrace?
 Are you talking about "not-able-to-get-login-prompt-via-ssh" after
 manual link configuration?
 
 >  me a terminal. The other difference between this box and my linux
 >  server is that the socket and message sizes are 16k each yet 32k on
 >  BSD.
 >  
 
 Message size should not be a problem.
 
 >  Also, I created a ramdisk to avoid disk io and same issue;
 >  
 
 No, you have to completely disable ramdisk access to know whether
 re(4) have issues or not. As I said, if you see the issue only when
 disk IOs are active the issue is not in re(4).
 
 >  [root@crane /mnt/tmp]# dd if=/dev/urandom of=./test.img bs=1024 count=502400
 >  502400+0 records in
 >  502400+0 records out
 >  514457600 bytes transferred in 20.235369 secs (25423683 bytes/sec)
 >  [root@crane /mnt/tmp]# ls -alh
 >  total 502570
 >  drwxr-xr-x  3 root  wheel      512B May 15 05:10 .
 >  drwxr-xr-x  3 root  wheel        3B May 15 05:06 ..
 >  drwxrwxr-x  2 root  operator   512B May 15 05:09 .snap
 >  -rw-r--r--  1 root  wheel      490M May 15 05:10 test.img
 >  [root@crane /mnt/tmp]# scp test.img root@192.168.1.30:/root/
 >  Password:
 >  test.img
 >       0%  592KB 254.8KB/s - stalled -
 >  
 >  -------------------------- dmesg ---------------------
 
 [...]

From: Christopher May <maquis196@gmail.com>
To: bug-followup@FreeBSD.org, Maquis196@googlemail.com
Cc:  
Subject: Re: kern/167827: [re] RTL8111/8168B Issues (stalling/only 100Mb)
Date: Thu, 17 May 2012 20:35:16 +0100

 Hi, again thanks for taking the time to reply.
 
 >I have no idea how this can happen. Did system panic? If yes, could
 >you show me the output of backtrace?
 >Are you talking about "not-able-to-get-login-prompt-via-ssh" after
 >manual link configuration?
 
 No I meant to say console, I couldn't get any prompt up on any tty.
 I've yet to see if its reproducible since the trigger as you say is
 something I shouldn't do. I'll test more down this route if interested
 though.
 
 
 >No, you have to completely disable ramdisk access to know whether
 >re(4) have issues or not. As I said, if you see the issue only when
 >disk IOs are active the issue is not in re(4).
 
 I'm unsure on how to do this/test this. I'm from a Linux background
 and never tested network throughput so I'd rather ask and be pointed
 at a handbook somewhere then spend a lot of time potentially reading
 up on the wrong thing!
 
 All in all, I'm unsure on how to proceed, is there anything I could
 compile in or out the kernel to test? I'm able to live at 100M
 connection, but sure would be nice for more when everything should
 support it :).

From: Christopher May <maquis196@gmail.com>
To: bug-followup@FreeBSD.org, Maquis196@googlemail.com
Cc:  
Subject: Re: kern/167827: [re] RTL8111/8168B Issues (stalling/only 100Mb)
Date: Thu, 17 May 2012 22:40:39 +0100

 Hi again... well this is quite interesting...
 
 After trying the currently connected cables I own that currently run
 at 1Gbps between my other machines and the switch (still 100mb on
 each) I decided to source a brand new cat6 cable from work. Now I
 swapped the old cable out and it still came up at 100M.
 
 Due to something unrelated to this I wanted to reboot and I just
 noticed that my switch is all green...
 
 So that's the 1Gbps working properly (I can only assume this
 nic/driver has issue with short (1m) cat5e cables that work perfectly
 on 5 other nics I have - I didn't think cat6 was that required sorry).
 However I'm still unable to push data off the box via scp/rsync. Could
 this be related or a separate issue?
 
 I ran netperf again just to make sure everything was above board;
 
 # netperf -H 192.168.1.30
 MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to
 192.168.1.30 (192.168.1.30) port 0 AF_INET
 Recv   Send    Send
 Socket Socket  Message  Elapsed
 Size   Size    Size     Time     Throughput
 bytes  bytes   bytes    secs.    10^6bits/sec
 
  87380  32768  32768    10.02     756.11
 
 
 re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
 	options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
 	ether c8:60:00:bc:f1:33
 	inet 192.168.1.120 netmask 0xffffff00 broadcast 192.168.1.255
 	inet6 fe80::ca60:ff:febc:f133%re0 prefixlen 64 scopeid 0x7
 	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 	media: Ethernet autoselect (1000baseT <full-duplex>)
 	status: active

From: YongHyeon PYUN <pyunyh@gmail.com>
To: Christopher May <maquis196@gmail.com>
Cc: yongari@freebsd.org, bug-followup@freebsd.org
Subject: Re: kern/167827: [re] RTL8111/8168B Issues (stalling/only 100Mb)
Date: Sun, 20 May 2012 15:11:16 -0700

 On Thu, May 17, 2012 at 09:50:04PM +0000, Christopher May wrote:
 > The following reply was made to PR kern/167827; it has been noted by GNATS.
 > 
 > From: Christopher May <maquis196@gmail.com>
 > To: bug-followup@FreeBSD.org, Maquis196@googlemail.com
 > Cc:  
 > Subject: Re: kern/167827: [re] RTL8111/8168B Issues (stalling/only 100Mb)
 > Date: Thu, 17 May 2012 22:40:39 +0100
 > 
 >  Hi again... well this is quite interesting...
 >  
 >  After trying the currently connected cables I own that currently run
 >  at 1Gbps between my other machines and the switch (still 100mb on
 >  each) I decided to source a brand new cat6 cable from work. Now I
 >  swapped the old cable out and it still came up at 100M.
 >  
 >  Due to something unrelated to this I wanted to reboot and I just
 >  noticed that my switch is all green...
 >  
 >  So that's the 1Gbps working properly (I can only assume this
 >  nic/driver has issue with short (1m) cat5e cables that work perfectly
 >  on 5 other nics I have - I didn't think cat6 was that required sorry).
 >  However I'm still unable to push data off the box via scp/rsync. Could
 >  this be related or a separate issue?
 >  
 
 Hmm, not sure. CAT6 cable is preferred one but normally CAT5e cable
 also should have no problems.  RealTek Linux driver seems to use a
 lot of DSP fixup code which is not included in FreeBSD. I don't
 know what the DSP fixups do but I guess it could be related with
 signal quality control as you noticed in CAT6 cable.
 
 My understanding for the issue is two things.
  1) 1000Mbps link is not established(i.e. show up as 100Mbps)
  2) When sending large files with scp, transmission fails
 Is that correct?
 
 For the first issue, please check negotiated speed/duplex of
 established link. ifconfig(8) will show current established
 link's speed/duplex of re(4). Check link partner(i.e. switch) also
 agrees on the speed/duplex of the link.  If your switch does not
 provide any way to configure/view link configuration, use
 stand-alone box and directly connect two boxes with an UTP cable
 and check established link's speed/duplex of link partner.
 
 For the second issue, I still have no idea how this is related with
 re(4) since you seem to have no problems with netperf. But let's
 rule out the first case and see whether the second issue also
 happens.
 
 >  I ran netperf again just to make sure everything was above board;
 >  
 >  # netperf -H 192.168.1.30
 >  MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to
 >  192.168.1.30 (192.168.1.30) port 0 AF_INET
 >  Recv   Send    Send
 >  Socket Socket  Message  Elapsed
 >  Size   Size    Size     Time     Throughput
 >  bytes  bytes   bytes    secs.    10^6bits/sec
 >  
 >   87380  32768  32768    10.02     756.11
 
 This looks weired. I can't explain how can you get 756Mbps as you
 said you got 100Mbps link.
 
 >  
 >  
 >  re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
 >  	options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
 >  	ether c8:60:00:bc:f1:33
 >  	inet 192.168.1.120 netmask 0xffffff00 broadcast 192.168.1.255
 >  	inet6 fe80::ca60:ff:febc:f133%re0 prefixlen 64 scopeid 0x7
 >  	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
 >  	media: Ethernet autoselect (1000baseT <full-duplex>)
 >  	status: active
 
 I also noticed you sent slightly different mail to
 bug-followup@FreeBSD.org. Please don't do that. It confuses a lot
 to my me and other users that follows the PR.
>Unformatted:
