Realtek re(4) driver

Dieter BSD dieterbsd at gmail.com
Mon Apr 23 05:57:10 UTC 2018


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.

> Has anyone tried similar testing?
> Suggestions of knobs to turn, or other things to try?

> I need to receive data via UDP without dropping packets.
> Closed source sucks, but I'm stuck with it, and thus with UDP.

Gary typed:
>> Everyone blames re, but AFAICT
>> no-one switched to a non-Realtek chip to run tests and prove that,
>> yes, re is really the cause of all the network problems.

I have a box with nfe(4) and bge(4) (BCM5750) that can receive data
with UDP or TCP without error.  This has been working for several years.
But a newer, faster machine with re(4) 8111E & 8111F cannot.  The nfe is
in the chipset, and the BCM5750 is onboard.  I had google look for an
expansion card with BCM5750 but found nothing.  I'm looking into
a Broadcom 5719 card, but there is at least one open PR against it, so...

Alex typed:
> surely it's not a NFS issue

NFS is a bug.  By design.  "Not a File System"
My machines are NFS-free.

> The only thing that link all bug reports
> (and there are tons) is the use of re card sustaining gigabit (duplex)
> transfers.

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.

STefan typed:
> Well, but you know that the U in UDP means unreliable?

Well, :-) you didn't pay attention when I said exactly that:
>>> Something like a rcp(1) with another
>>> FreeBSD box merely runs slower due to the stalls, but if the other end
>>> has buggy network code and/or if the transfer is forced to use UDP
>>> (Unreliable Data Protocol) data is lost.  :-(

>> With reasonably decent network software and TCP, this is only a minor
>> problem.  However with buggy network software (like a "black box"
>> with closed source firmware and maybe a transmit buffer that is *way*
>> too small, and/or true real time requirements), and/or with a brain dead
>> protocol like UDP, you can lose data.

rcp(1) to 8111F using Realtek driver
Both machines basically idle.
mtu=9000 on both ends but appears to be using 1500 anyway?
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
            input            re0           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     80851     0     0  120590446      80852     0    5336591     0     0
     80849     0     0  120589243      80847     0    5336334     0     0
     80858     0     0  120598524      80860     0    5336928     0     0
     15085     0     0   22529747      15107     0     997296     0     0
         4     0     0        264          4     0        564     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
     63944     0     0   95447185      63943     0    4220604     0     0
     80588     0     0  120276192      80589     0    5319233     0     0
     80721     0     0  120480130      80722     0    5328011     0     0
     79870     0     0  119139685      79870     0    5271720     0     0
     79425     0     0  118587402      79442     0    5243472     0     0
     80609     0     0  120333747      80609     0    5320494     0     0
     80852     0     0  120624944      80850     0    5336532     0     0
     80827     0     0  120555558      80831     0    5335073     0     0
     79185     0     0  118137499      79185     0    5226510     0     0
     76417     0     0  114252562      76431     0    5045010     0     0
     79896     0     0  119330393      79900     0    5273436     0     0
     79455     0     0  118627478      79456     0    5244330     0     0
     77667     0     0  116033902      77662     0    5126256     0     0
            input            re0           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     79517     0     0  118735507      79515     0    5248547     0     0
     78557     0     0  117304898      78578     0    5186118     0     0
     79607     0     0  118742143      79625     0    5255616     0     0
     79776     0     0  119140720      79775     0    5265450     0     0
     75105     0     0  112725906      75107     0    4957230     0     0
     79214     0     0  118774181      79214     0    5228424     0     0
     13090     0     0   19520508      13113     0     865692     0     0

Same as above except to 2nd 8111F port.

            input            re1           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     75170     0     0  112288950      75165     0    4960956     0     0
     74149     0     0  110808698      74150     0    4893834     0     0
     75088     0     0  112276960      75088     0    4955808     0     0
     74567     0     0  111313160      74566     0    4921356     0     0
     77064     0     0  115370280      77065     0    5086290     0     0
     71606     0     0  107343414      71622     0    4727052     0     0
     70831     0     0  105956278      70832     0    4674849     0     0
     70727     0     0  106127094      70725     0    4667916     0     0
     73427     0     0  110111478      73425     0    4846182     0     0
     72519     0     0  108763678      72522     0    4786320     0     0
      5661     0     0    8423884       5681     0     374880     0     0
         0     0     0          0          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
         2     0     0        196          0     0          0     0     0
         1     0     0         98          0     0          0     0     0
       563     0     0     838984        561     0      37026     0     0
     29144     0     0   43754296      29142     0    1923438     0     0
     73986     0     0  110909436      73987     0    4883142     0     0
     39601     0     0   59343834      39621     0    2614920     0     0
         0     0     0          0          0     0          0     0     0
         3     0     0        201          0     0          0     0     0
            input            re1           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
         0     0     0          0          0     0          0     0     0
         1     0     0         98          0     0          0     0     0
       567     0     0     839958        567     0      37422     0     0
         1     0     0         98          0     0          0     0     0
     38003     0     0   56780696      38000     0    2508066     0     0
     75439     0     0  112523550      75438     0    4978908     0     0
     77058     0     0  114890108      77059     0    5085894     0     0
     77471     0     0  115473190      77470     0    5113020     0     0
     76814     0     0  114644092      76815     0    5069790     0     0
     78120     0     0  116633730      78118     0    5155788     0     0
     74853     0     0  111727082      74854     0    4940298     0     0
     77626     0     0  115697756      77623     0    5123250     0     0
     70804     0     0  105582200      70804     0    4672998     0     0
     76722     0     0  114492148      76722     0    5063652     0     0
     29562     0     0   44157654      29582     0    1952346     0     0
         0     0     0          0          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
       568     0     0     840298        566     0      37356     0     0
         0     0     0          0          0     0          0     0     0
            input            re1           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     43130     0     0   64590180      43128     0    2846514     0     0
     29010     0     0   43374204      29032     0    1916046     0     0
         0     0     0          0          0     0          0     0     0
         2     0     0        134          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
       515     0     0     770942        515     0      33990     0     0
     17903     0     0   26853958      17902     0    1181598     0     0
     74854     0     0  111699988      74851     0    4940166     0     0
     77120     0     0  115061536      77117     0    5089722     0     0
     76857     0     0  114664362      76855     0    5072562     0     0
     75817     0     0  113174146      75820     0    5003988     0     0
     76737     0     0  114435914      76737     0    5064642     0     0
     78495     0     0  117128814      78493     0    5180604     0     0
     75723     0     0  112970948      75724     0    4997718     0     0
     76501     0     0  114196604      76500     0    5049066     0     0
     76187     0     0  113779382      76189     0    5028408     0     0
     77236     0     0  115269384      77235     0    5097510     0     0
     75300     0     0  112389128      75300     0    4969800     0     0
     76492     0     0  114455568      76492     0    5048472     0     0
     75573     0     0  113011418      75572     0    4987752     0     0
            input            re1           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     73331     0     0  109541752      73330     0    4839780     0     0
     76732     0     0  114631816      76733     0    5064378     0     0
     74400     0     0  111067456      74399     0    4910334     0     0
     75974     0     0  113463012      75975     0    5014350     0     0
     76312     0     0  113999448      76311     0    5036526     0     0
     43806     0     0   65415884      43844     0    2893638     0     0
         1     0     0         66          0     0          0     0     0
         0     0     0          0          0     0          0     0     0

Same as above except to onboard 8111E.

            input            re2           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     53122     0     0   80345556          0     0          0     0     0
     53984     0     0   81332624          0     0          0     0     0
     61394     0     0   92785548          0     0          0     0     0
     53421     0     0   80696090          0     0          0     0     0
     30857     0     0   46597698          0     0          0     0     0
     76124     0     0  115239504          0     0          0     0     0
     69172     0     0  104706904          0     0          0     0     0
     76094     0     0  115191956          0     0          0     0     0
     76849     0     0  116329874          0     0          0     0     0
     68788     0     0  104120096          0     0          0     0     0
     69233     0     0  104802146          0     0          0     0     0
     50527     0     0   76465702          0     0          0     0     0
     75916     0     0  114920192          0     0          0     0     0
     66062     0     0   99990092          0     0          0     0     0
     76257     0     0  115436194          0     0          0     0     0
     47074     0     0   71233028          0     0          0     0     0
     51788     0     0   78359104          0     0          0     0     0
     44486     0     0   67316276          0     0          0     0     0
     76159     0     0  115288566          0     0          0     0     0
     64766     0     0   98037852          0     0          0     0     0
     76786     0     0  116237604          0     0          0     0     0
            input            re2           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     50676     0     0   76688424          0     0          0     0     0
     76918     0     0  116440932          0     0          0     0     0
     65723     0     0   99488694          0     0          0     0     0
     73756     0     0  111653288          0     0          0     0     0
     71393     0     0  108070674          0     0          0     0     0
     63089     0     0   95485346          0     0          0     0     0
     69588     0     0  105333248          0     0          0     0     0
     59215     0     0   89617670          0     0          0     0     0
     57339     0     0   86752950          0     0          0     0     0
     75739     0     0  114651942          0     0          0     0     0
     68442     0     0  103594692          0     0          0     0     0
     49990     0     0   75649100          0     0          0     0     0
     27710     0     0   41940348          0     0          0     0     0
     50005     0     0   75694058          0     0          0     0     0
     76748     0     0  116183384          0     0          0     0     0
     52088     0     0   78847168          0     0          0     0     0
     76816     0     0  116287048          0     0          0     0     0
     70232     0     0  106301624          0     0          0     0     0
     76467     0     0  115754502          0     0          0     0     0
     68979     0     0  104412918          0     0          0     0     0
     76694     0     0  116101068          0     0          0     0     0
            input            re2           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     68857     0     0  104224114          0     0          0     0     0
     76545     0     0  115871154          0     0          0     0     0
     65996     0     0   99843912          0     0          0     0     0
     76674     0     0  116070772          0     0          0     0     0
     68095     0     0  103070230          0     0          0     0     0
     74877     0     0  113319642          0     0          0     0     0
     39228     0     0   59366824          0     0          0     0     0
     53026     0     0   80203068          0     0          0     0     0

...

     77799     0     0  117779926          0     0          0     0     0
     72666     0     0  110007220          0     0          0     0     0
     69173     0     0  104681578          0     0          0     0     0
     55918     0     0   84169172          0     0          0     0     0
     24127     0     0   36195390          0     0          0     0     0
            input            re2           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
         0     0     0          0          0     0          0     0     0
     19706     0     0   29578468          0     0          0     0     0
     53262     0     0   79974084          0     0          0     0     0
     59033     0     0   88835122          0     0          0     0     0
     54469     0     0   81830514          0     0          0     0     0
     55005     0     0   82842706          0     0          0     0     0
     47867     0     0   72331934          0     0          0     0     0
     65468     0     0   99099624          0     0          0     0     0
     80572     0     0  121980632          0     0          0     0     0
     58201     0     0   88091802          0     0          0     0     0
     51948     0     0   78614144          0     0          0     0     0
     80053     0     0  121196242          0     0          0     0     0
     52331     0     0   79200470          0     0          0     0     0
     80123     0     0  121302582          0     0          0     0     0
     43414     0     0   65698001          0     0          0     0     0
     77961     0     0  117995130          0     0          0     0     0
     62287     0     0   94226926          0     0          0     0     0
     75558     0     0  114290892          0     0          0     0     0
     64228     0     0   97158320          0     0          0     0     0
     59981     0     0   90654186          0     0          0     0     0
     43520     0     0   65739096          0     0          0     0     0
            input            re2           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     56570     0     0   85335700          0     0          0     0     0
     50066     0     0   75384196          0     0          0     0     0
     55959     0     0   84239934          0     0          0     0     0
     53192     0     0   80101232          0     0          0     0     0
     49002     0     0   73982980          0     0          0     0     0
     49713     0     0   74993370          0     0          0     0     0
     43984     0     0   66011800          0     0          0     0     0
     54324     0     0   81935448          0     0          0     0     0
     48502     0     0   72734828          0     0          0     0     0
     26191     0     0   39411806          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
     42582     0     0   64021036          0     0          0     0     0
     47216     0     0   70880104          0     0          0     0     0
     52239     0     0   78498398          0     0          0     0     0
     52517     0     0   79279690          0     0          0     0     0
     44212     0     0   66384032          0     0          0     0     0
     57225     0     0   86126642          0     0          0     0     0
     47902     0     0   72238300          0     0          0     0     0
     44933     0     0   67508656          0     0          0     0     0
     54967     0     0   82411976          0     0          0     0     0
     50724     0     0   76288600          0     0          0     0     0

...

            input            re2           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     56426     0     0   84726988          0     0          0     0     0
     53332     0     0   79840392          0     0          0     0     0
     52763     0     0   78943630          0     0          0     0     0
     52190     0     0   78016892          0     0          0     0     0
     56889     0     0   85597554          0     0          0     0     0
     55265     0     0   82915642          0     0          0     0     0
     52162     0     0   78061690          0     0          0     0     0
     58041     0     0   87326532          0     0          0     0     0
     53244     0     0   79740088          0     0          0     0     0
     51387     0     0   76791862          0     0          0     0     0
     54187     0     0   81106878          0     0          0     0     0
     51846     0     0   77541604          0     0          0     0     0
     42316     0     0   63282584          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
         0     0     0          0          0     0          0     0     0
       590     0     0     890908          0     0          0     0     0
     40253     0     0   60411290          0     0          0     0     0
     56653     0     0   85264434          0     0          0     0     0
     53499     0     0   80125838          0     0          0     0     0
[ ... ]
            input            re2           output
   packets  errs idrops      bytes    packets  errs      bytes colls drops
     52839     0     0   78935238          0     0          0     0     0
     53098     0     0   79307900          0     0          0     0     0
     49559     0     0   74231830          0     0          0     0     0
     79905     0     0  120972890          0     0          0     0     0
     66836     0     0  101174008          0     0          0     0     0
     75308     0     0  113998016          0     0          0     0     0
     47258     0     0   71543932          0     0          0     0     0
        32     0     0      48448          0     0          0     0     0
     70026     0     0  106002764          0     0          0     0     0
     63937     0     0   96604786          0     0          0     0     0
     60947     0     0   92062662          0     0          0     0     0
     63772     0     0   96410208          0     0          0     0     0
     58129     0     0   87582154          0     0          0     0     0
     59204     0     0   89190072          0     0          0     0     0
     61375     0     0   92741230          0     0          0     0     0
     69159     0     0  104622734          0     0          0     0     0
     75748     0     0  114661800          0     0          0     0     0
     75478     0     0  114253980          0     0          0     0     0
     76814     0     0  116282228          0     0          0     0     0
     76931     0     0  116458670          0     0          0     0     0
     75299     0     0  113979718          0     0          0     0     0


More information about the freebsd-hackers mailing list