[mythtv-users] Nvidia ION unreliable HDHR Prime at gigabit speeds

Douglas dclowes1 at optusnet.com.au
Tue Mar 8 20:54:14 UTC 2016


On 09/03/16 06:18, Will Dormann wrote:
> On 3/8/16 6:23 AM, Stuart Auchterlonie wrote:
>> I'd also take a look at the tcp / gro offload settings and try turning
>> them off to improve reliability. Sometimes if the hardware isn't quite
>> right, it's better to let the kernel handle that, than offload it to
>> the hardware.
> FWIW, I've tried disabling all of the offload options with my forcedeth
> setup (based off of
> <http://serverfault.com/questions/421995/disable-tcp-offloading-completely-generically-and-easily#422554>
> ), to no avail.
>
>
> -WD
>

I have the Nvidia ION and its poor Ethernet performance is down the the 
Atom CPU it is paired with. One of the two cores goes 100% when I run 
iperf3 and my gigabit Ethernet is only about 50% utilised. I suspect 
that the driver can only use one of the two cores.

The fact that the driver is telling you that it dropped all of those 
packets suggests to me that it received them before dropping them. If 
they were wrong then I would expect the error counter to reflect that or 
for them to be silently "not received".

So, where are they going, and why? I don't know the answer but would 
suspect that your program has not received them. The driver will have a 
finite buffer for packets that have been received and are waiting for 
delivery to your program. When that is full it has no other choice than 
to drop them.

You could try bigger buffers, to handle surges, but if your program just 
plain can't keep up, then that will just defer the problem. Bigger 
packets will reduce the number of times around the loop for yur program 
and that might help. A slower network link may saturate the link and 
push the problem back to your switch which might deal with it better (if 
that is the case the bigger buffers should help).

As for the ION, if you're not using the VDPAU in it then you could be 
using more CPU for video decoding leaving less for Ethernet and slowing 
your program loop rate.

Look at your CPU utilisation and pay attention to the possibility that 
one core is 100%. Play with iperf/iperf3, which has a few knobs you can 
twiddle, between frontend and backend.

Douglas



More information about the mythtv-users mailing list