[mythtv] ringbuffer.cpp

Gary Buhrmaster gary.buhrmaster at gmail.com
Mon Feb 17 04:22:16 UTC 2014

On Mon, Feb 17, 2014 at 1:58 AM, Jonas Arndt
<jonas.arndt at thearndtfamily.com> wrote:
> ....  After some troubleshooting it turns out that his server only had a
> 100 Mbps NIC while mine had a 1 Gbps. I installed a 1 Gbps card in his
> server and the problem is gone. It still freezes up a second or so between
> shows, but I have that as well.
> Now why on earth would I need 1 Gbps to run watch liveTV? No issues with
> recorded shows on the 100 Mbit NIC. I don't know much about the Myth
> streaming protocol but it seems there is stuff going on there for LiveTV
> that would require a much larger bandwidth then one would expect.

It is possible you have one of the "special" 100Mb/s ethernet chips.

Most ethernet hardware has various offloading capabilities, and
various errata.  The offloading capabilities enhance the overall
throughput, but can result in (usually slight) delays from time
to time.  And some of the vendors implementation of offloading
is "interesting".

And (almost all) chips have various "bugs", known as errata, for which
the driver has to perform workarounds.  In many cases, the vendor
provides binary blobs for Windows, with fixes included, and the
Linux community has to figure out the issues for themselves.  At
least a few chips are known to just "hang" for a bit, and the driver
has to restart the transaction.

And then there is that reality that some chips (especially older, which
a 100Mb/s chip is likely to be) fail to properly negotiate the speed
of the link, resulting in half duplex connections.

And, it is also possible that due to port queueing, or head of line
blocking from other traffic, that your packets get delayed (it could
be a multicast/broadcast activity is occurring on your network)

Any decent ethernet switch should allow you to properly monitor
the connection state, check for port queing, and to mirror the
ports for a more careful analysis, although the easy solution is
just throw (new) hardware at it.  Note that decent means a
managed L2 device, not the $40 5-port unmanaged gigabit switch
from the local electronics retailer.

In general, I find the consumer realtek and broadcom ethernet
chips to have the most interesting set of "issues" on Linux, and
avoid them when possible (including replacing them with
(usually) Intel cards), although I have heard that later generations
are better.  Note that specific revisions of some Intel chips are
also broken (requiring workarounds like disabling deeper C-state
power management).  There are not (known) chips which are
perfect.  It is just the devil you know (and have workarounds for),
and the devil you do not know.

More information about the mythtv-dev mailing list