I wasn't expecting much change in overall speed performance, I've not seen improvements by turning off eee. What I have seen is that the number of drop outs went from 5 or 6 per 1.5GB transfer down to zero. So I am expecting the link to be more robust, but not faster.

When we have tested for speed in the office, we definitely see a major improvement on internal transfers for the 3B+, but we cannot check internet speed because our office link is capped at 100Mbits/s, so both the B and B+ hit about the same speed.

And a quick lesson on definitions. The Linux kernel is monolithic, this means that drivers are inherently part of the kernel (even if loaded as a module, but the lan78xx is built in anyway), so there is no real distinction between being a kernel problem and a driver problem. A driver problem IS a kernel problem.

Ok.Learning.

The very odd is that gigabit NIC on RPi3B+ performs better on 100 mode than on 1000 mode.

sudo ethtool -s eth0 speed 100 duplex full

100 mode is about 80 Mbits/s in my ISP and 1000 mode is about 40 Mbits/s.

This can only see people with about 200 ISP download speeds and up and when testing.
Very good ISP connections can disguise the problem. Better ping and much download speed less you see the loss.
The old RPi3B not plus has a different kernel driver and is 10/100 card but have the same problem that RPi3B+ on iperf3.
All this points to a Raspbian kernel problem on pi.

So, just for reference, and of not much use since our link is capped at 100Mb/s, I get upload 90Mb/s, uploads 87Mb/s.

When I do an rsync from Ubuntu box to Pi via local network (just one switch) actually hit the limits of the SD card bandwidth which slows the network transfer down, but occasionally get up to 25MB/s (200Mbits/s) or more. Going to try a different mechanism for real world copying so I can dump the results to null to avoid that.

But in precis I'm just not seeing any major speed issues with the 3B+ yet.

Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

Interesting idea to insert a USB hub in between. It is possible that packet loss in the 3B+ is occurring at the hub level. The built-in USB hub being responsible for the packet loss is further suggested by the fact that similar behaviour is observed by the person making the original post when using an external gigabit USB device. However, a marginal networking cable might explain the same thing.

This article describes the difference between single-TT and multi-TT hubs and how one type can lead to packet loss when multiple devices are connected. Note that all USB hubs based on the Genesys GL850 chipset dropped packets. You might consider connecting a mouse, keyboard and thumb drive to the USB hub and see if that decreases the reliability of the Ethernet dongle. What happens if the mouse and thumb drive are in use by a different process when the iperf test is being performed?

That's too bad. I think permanent bans can be damaging to the forum and to the people who are banned. A couple years ago there was an enthusiastic young member who identified performance issues related to an interrupt bug in the Bluetooth driver. I think he or she was permanently banned for something in the off-topic section. They subsequently made a few paranoid posts from a different account then never came back. I expect that person could make a positive contribution to this thread if still around.

It's all very well knowing your stuff, but presentation matters. I have had about 10 different reports on this posters posts (more than anyone for years), and was wasting a lot of time dealing with the fallout. It a shame that some clearly intelligent people are unable to behave in a civilised manner, even when asked to, and seem to think that when they do come back after a temporary ban, that being sarcastic and having a go at the mods is a good idea.

Sometimes you just have to bite the bullet and in the words of Elsa, just Let it Go. It's not as if there is a lack of smart people both in the office and on this forum to step up to the plate and fill any gaps.

Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

It was me. Said poster annoyed me sufficiently to motivate me to wield the banhammer with aplomb, so it was thusly wielded. Pro tip: even if you post technically useful information or analysis on our forums, if you act like you would be kicked out of a house dinner party by the host then you can expect a swift application of the banhammer.

Post all the bugs you want, but lose the attitude. I simply do not have time to deal with forum drama.

TX side is good.
But RX is awful, it's the worst SBC network-wise I've ever seen, and I own quite a collection.

As suggested above running iperf -c pi.ip -b 200M is good, 250 and higher is bad,
lots of retries, poor throughput, very poor, copying a file over nfs takes like forever.
My switch shows absolutely no errors on the pi port.
When sending from the pi (TX) everything is fine without any limits.

dtparam=eee=off does not help here at all.

I have a proper network at home and the 3b+ is connected to a L2 managed gigabit switch, which works perfectly.
So far for me the solution is to limit port speed on the switch to 100Mbit FD.
At 100 mbit forced link speed the network is stable, no drops, retrs, works fine, just like the old good rpi3 without plus.

----------------------------
Warning: rant
----------------------------
And sadly I have to agree with @tkaiser, I have a few poor cheapo-crapo wannabe pi boards which can max gigabit.

Pi network "architecture" over single USB port has to die. Period.
This may have been good when BCM2835 was designed, but can I remind you what year it is?
For your favorite god's sake - put a proper RGMII into the SoC ...

I know, I know what you might say - pi is for education and yada-yada, nowadays trying to teach computers with utterly broken network is pointless.

Again, once you take into account the usb2 bus which this attached to, this is pretty good. Do you think it should be faster? We expect a 2 to 3 times speedup over the 3b, so these numbers look about right.

Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

As for usb2 needing to die, that has been abundantly clear for a couple of years at least. However, doing something about it that works for the Pi ecosystem takes longer than that.

Meanwhile, we do the best we can with what's available.

I know you do, and I know you (the team) will fix this if it's at all posible, the engineers here are very skilled,
if any patches or workarounds are found I will be more than happy to help test anything, I have skill and equipment, I lack time tho.
However please understand that as network engineer (SNA) I find it very frustrating to stumble into poor working network on my new shiny 3b+

As for usb2 needing to die, that has been abundantly clear for a couple of years at least. However, doing something about it that works for the Pi ecosystem takes longer than that.

Meanwhile, we do the best we can with what's available.

I know you do, and I know you (the team) will fix this if it's at all posible, the engineers here are very skilled,
if any patches or workarounds are found I will be more than happy to help test anything, I have skill and equipment, I lack time tho.
However please understand that as network engineer (SNA) I find it very frustrating to stumble into poor working network on my new shiny 3b+

I'm no network expert, so can you give me some idea of what you think might be happening? From the comment above, is the transmitter sending out at 1000T but since the Pi cannot rx at that speed, it's losing packets which need retransmitting? So turning on flow control stops the sender from over sending?

Are you aware of any ability in receivers to broadcast the fact that is rx speed is limited to avoid the need for each end to understand/enable flow control? Or can receivers tell senders to use flow control? Or can rx'ers tell senders a maximum data rate to use?

I can have a dig in the chip datasheet tomorrow to see if anything pops out, although TBH, Microchip should be sorting this sort of thing out - it's their chip, firmware and driver.

Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

I've borrowed a USB 2.0 to gigabit dongle (ax88178) from one of our managers and plugged it into my ubuntu workstation and to a cisco 3750g switch, flow control off.
Everything worked fine, no RX issues.
So I'd say that it's effectively microchip IC and/or driver issue or some compatibility issue between LAN/HUB chip and SoC USB.
Seeing kernel oopses that were reported (now triaged in rpi-4.14.y branch) with lan78xx driver I'd dare to say that microchip driver is in poor state and needs to be properly fixed by the vendor.

Sadly I can't bring the dongle home to run some tests in the same environment as the pi.

I'm not that good with low level stuff, which we don't usually need, and right now I can't offer any advice.
I'll investigate this on the weekend and report back if I find something.

I've borrowed a USB 2.0 to gigabit dongle (ax88178) from one of our managers and plugged it into my ubuntu workstation and to a cisco 3750g switch, flow control off.
Everything worked fine, no RX issues.

Greater than 300 Mbit speeds both up and down using a gigabit USB 2.0 dongle on a non-Pi computer with no retransmitted packets was also reported earlier on this thread, but I can't find that post anymore. The person who started this thread tried an external gigabit USB networking device in the 3B+ but still experienced retransmissions and slow 200 Mbit download. Unfortunately, no single person has used the same dongle in both 3B+ and non-3B+ systems, so results are inconclusive.

While 200 Mbit download may seem fine at first glance, those tests were performed using a low-latency local area network. Retransmits have a much greater impact when transferring data across a high-latency connection to the internet.

Last edited by ejolson on Thu Mar 29, 2018 3:45 pm, edited 1 time in total.