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
[-- Attachment #1 --]
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.
[-- Attachment #2 --]
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 |
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111111235526.GC17792>
