Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Apr 2018 14:45:03 +0900
From:      YongHyeon PYUN <pyunyh@gmail.com>
To:        Dieter BSD <dieterbsd@gmail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Realtek re(4) driver
Message-ID:  <20180424054503.GC3123@michelle.fasterthan.co.kr>
In-Reply-To: <CAA3ZYrBkB8WtSsoNqbCF68EumivNR6LdZBNM-xDbZMHC6adYiQ@mail.gmail.com>
References:  <CAA3ZYrBkB8WtSsoNqbCF68EumivNR6LdZBNM-xDbZMHC6adYiQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Apr 22, 2018 at 10:57:07PM -0700, Dieter BSD wrote:
> With several days more data, the Realtek driver is slightly different
> than the stock FreeBSD 10.3 driver, but it still fails a lot, with both
> TCP and UDP.
>  

[...]

> My re run (1000baseT <full-duplex>) but the pauses happen even with
> light traffic.  You don't have to run them full blast with rcp/ftp/whatever
> to get failures.
> 

I guess benchmarks/netperf or benchmarks/iperf is better tool to
measure performance of ethernet driver. rcp/ftp involves other IOs
with network IO so you may measure performance of other subsystem.
If you see intermittent pauses during the test, try enabling or
disabling ethernet flow control of the controller.

# Disable flowcontrol
#ifconfig re0 media auto -mediaopt flow


# Enable flowcontrol
#ifconfig re0 media auto mediaopt flow

[...]

> rcp(1) to 8111F using Realtek driver
> Both machines basically idle.
> mtu=9000 on both ends but appears to be using 1500 anyway?

Cached route may cache the MTU of the interface. You may have to
down and re-up the interface to reflect the change.

> netstat -w 1 -d -I re0
> 
>             input            re0           output
>    packets  errs idrops      bytes    packets  errs      bytes colls drops
>          5     0     0        330          6     0        755     0     0
>          4     0     0        264          4     0        564     0     0
>          5     0     0        331          5     0        630     0     0
>      17454     0     0   26176844      17453     0    1152264     0     0
>      67883     0     0  101023187      67880     0    4481248     0     0
>      52133     0     0   77141014      52140     0    3444580     0     0
>      72410     0     0  107980584      72409     0    4780384     0     0
>      80736     0     0  120645177      80735     0    5328810     0     0
>      71898     0     0  107298972      71899     0    4745634     0     0
>      14452     0     0   21510681      14475     0     955577     0     0
>          5     0     0        330          6     0        755     0     0
>          4     0     0        264          4     0        564     0     0
>          5     0     0        331          5     0        630     0     0
>          4     0     0        264          4     0        564     0     0
>      65323     0     0   97533279      65321     0    4311552     0     0
>      28383     0     0   42398766      28385     0    1873769     0     0
>      80759     0     0  120315366      80756     0    5330394     0     0
>      80992     0     0  120693553      80995     0    5345772     0     0
>      80932     0     0  120692488      80930     0    5341746     0     0
>      78905     0     0  117912275      78922     0    5209152     0     0
>      80158     0     0  119592452      80159     0    5290728     0     0

These counters are maintained in driver but it's not from MAC of
the controller.  So you can't tell how much RX packets were dropped
before driver sees them. There is an undocumented sysctl variable
which reads H/W MAC counters and output them on console.

#sysctl dev.re.0.stats=1



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