Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Nov 2011 15:55:26 -0800
From:      YongHyeon PYUN <pyunyh@gmail.com>
To:        Michael =?iso-8859-1?B?TGHf?= <bevan@bi-co.net>
Cc:        freebsd-net@freebsd.org
Subject:   Re: Gigabit Ethernet performance with Realtek 8111E
Message-ID:  <20111111235526.GC17792@michelle.cdnetworks.com>
In-Reply-To: <1321046480.8512.3.camel@bevan-pc.fritz.box>
References:  <1320494003.19667.41.camel@bevan-pc.fritz.box> <20111106234054.GB1906@michelle.cdnetworks.com> <20111107175953.GA1646@michelle.cdnetworks.com> <1321046480.8512.3.camel@bevan-pc.fritz.box>

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

--vtzGhvizbBRQ85DL
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Fri, Nov 11, 2011 at 10:21:20PM +0100, Michael La?? wrote:
> Hi!
> 
> Sorry for my late response.
> 
> Am Montag, den 07.11.2011, 09:59 -0800 schrieb YongHyeon PYUN:
> > > 
> > > Some revisions of RealTek controller have FIFO overrun issue but
> > > I'm not sure whether you're seeing the issue.  Try enabling flow
> > > control and see whether that makes any difference. You can enable
> > > it by issuing 'ifconfig re0 media flow'.
> > 
> > This should be read as 'ifconfig re0 mediaopt flow'.
> 
> It may be that enabling flow control helps a bit but it definately does
> not solve the problem. There are still hundreds of packets missed in
> just one or two minutes. Maybe there is no difference at all.
> 

Ok, try attached patch and let me know how it works.

> > > Show me the dmesg output. RealTek uses the same device PCI ids so it's
> > > impossible to know which controller you have from the pciconf(8)
> > > output.
> 
> I think the relevant part is this one:
> > re0: <RealTek 8168/8111 B/C/CP/D/DP/E PCIe Gigabit Ethernet> port 0x1000-0x10ff mem 0xf0004000-0xf0004fff,0xf0000000-0xf0003fff irq 16 at device 0.0 on pci1
> > 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: 38:60:77:3e:af:a5
> 

Your controller is RTL8168E.

> Full dmesg output is also attached.
> 
> Greetings,
> Michael
> 
> PS: In my first mail I wrote that I can reproduce the problem only with
> one of two connected hosts. I think the reason is that the other host
> only produces a maximum of 250Mbit/s while the problematic transfers go
> up to 550Mbit/s.



--vtzGhvizbBRQ85DL
Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="re.oflow.diff"

Index: sys/dev/re/if_re.c
===================================================================
--- sys/dev/re/if_re.c	(revision 227451)
+++ sys/dev/re/if_re.c	(working copy)
@@ -2524,6 +2524,8 @@
 
 	intrs = RL_INTRS_CPLUS;
 	status = CSR_READ_2(sc, RL_ISR);
+	if ((status & RL_ISR_FIFO_OFLOW) != 0)
+		status |= RL_ISR_RX_OVERRUN;
         CSR_WRITE_2(sc, RL_ISR, status);
 	if (sc->rl_int_rx_act > 0) {
 		intrs &= ~(RL_ISR_RX_OK | RL_ISR_RX_ERR | RL_ISR_FIFO_OFLOW |

--vtzGhvizbBRQ85DL--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111111235526.GC17792>