[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