Video buffering the whole time

Ask questions about Arch Linux ARM. Please search before making a new topic.

Video buffering the whole time

Postby sheevaplugger » Fri Dec 06, 2013 10:23 pm

Hello,

I have a new MIRABOX on the start. When I copy data over samba I have a transfer rate of ~6 MBit/s. Fine.

But when I start a video file over dlna (minidlna) or samba on my desktop pc, tablet or tv, the player is stopping und buffering the video all the time.

Has somebody a hint for me?

I'm wondering why the problem appears only while streaming a video file.

Data file transfer is ok. The tool "iperf" show good values.

The same problem while video streaming:
on eth0 and eth1.
with different lan cables.
with different protocolls (dlna, samba).
with video files on a sd card and an external hd drive.
with tvheadend dvb video streaming.

Thanks for your hints!

Best regards :: David
sheevaplugger
 
Posts: 22
Joined: Thu May 13, 2010 6:08 pm

Re: Video buffering the whole time

Postby WarheadsSE » Fri Dec 06, 2013 10:30 pm

Are you attempting to transcode?
Core Developer
Remember: Arch Linux ARM is entirely community donation supported!
WarheadsSE
Developer
 
Posts: 6807
Joined: Mon Oct 18, 2010 2:12 pm

Re: Video buffering the whole time

Postby sheevaplugger » Sat Dec 07, 2013 8:46 am

Hello,

it is no transcoding or streaming problem. I make new tests. I tested up- and download.

Upload (from a pc to mirabox) ok: ~5-6 MBit/s

Download (from mirabox to pc) NOT OK: ~ 270 kBit/s

I have a fresh archlinuxarm installation!

Could it be a software problem OR is my hardware defect?

Best regards :: david
sheevaplugger
 
Posts: 22
Joined: Thu May 13, 2010 6:08 pm

net: mvneta: properly disable HW PHY polling and ensure ...

Postby sheevaplugger » Mon Dec 09, 2013 9:46 pm

I found the bug; it should be fixed with kernel version 3.10.12.

I had "linux-mvebu-mirabox 3.12.3-1" installed. But i find it strange that the package "linux-mvebu 3.12.3-1" is installed two. Is that right?

And when the kernel 3.10.12 fixes the problem, why kernel 3.12.3 shows the bug again?

$this->bbcode_second_pass_code('', '
commit 4c54b9db01842eb0f4eb54af6949b7606ea39e7a
Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Wed Sep 4 16:21:18 2013 +0200

net: mvneta: properly disable HW PHY polling and ensure adjust_link() works

[ Upstream commit 714086029116b6b0a34e67ba1dd2f0d1cf26770c ]

This commit fixes a long-standing bug that has been reported by many
users: on some Armada 370 platforms, only the network interface that
has been used in U-Boot to tftp the kernel works properly in
Linux. The other network interfaces can see a 'link up', but are
unable to transmit data. The reports were generally made on the Armada
370-based Mirabox, but have also been given on the Armada 370-RD
board.

The network MAC in the Armada 370/XP (supported by the mvneta driver
in Linux) has a functionality that allows it to continuously poll the
PHY and directly update the MAC configuration accordingly (speed,
duplex, etc.). The very first versions of the driver submitted for
review were using this hardware mechanism, but due to this, the driver
was not integrated with the kernel phylib. Following reviews, the
driver was changed to use the phylib, and therefore a software based
polling. In software based polling, Linux regularly talks to the PHY
over the MDIO bus, and sees if the link status has changed. If it's
the case then the adjust_link() callback of the driver is called to
update the MAC configuration accordingly.

However, it turns out that the adjust_link() callback was not
configuring the hardware in a completely correct way: while it was
setting the speed and duplex bits correctly, it wasn't telling the
hardware to actually take into account those bits rather than what the
hardware-based PHY polling mechanism has concluded. So, in fact the
adjust_link() callback was basically a no-op.

However, the network happened to be working because on the network
interfaces used by U-Boot for tftp on Armada 370 platforms because the
hardware PHY polling was enabled by the bootloader, and left enabled
by Linux. However, the second network interface not used for tftp (or
both network interfaces if the kernel is loaded from USB, NAND or SD
card) didn't had the hardware PHY polling enabled.

This patch fixes this situation by:

(1) Making sure that the hardware PHY polling is disabled by clearing
the MVNETA_PHY_POLLING_ENABLE bit in the MVNETA_UNIT_CONTROL
register in the driver ->probe() function.

(2) Making sure that the duplex and speed selections made by the
adjust_link() callback are taken into account by clearing the
MVNETA_GMAC_AN_SPEED_EN and MVNETA_GMAC_AN_DUPLEX_EN bits in the
MVNETA_GMAC_AUTONEG_CONFIG register.

This patch has been tested on Armada 370 Mirabox, and now both network
interfaces are usable after boot.

[ Problem introduced by commit c5aff18 ("net: mvneta: driver for
Marvell Armada 370/XP network unit") ]
')
sheevaplugger
 
Posts: 22
Joined: Thu May 13, 2010 6:08 pm

Re: Video buffering the whole time

Postby sheevaplugger » Fri Dec 20, 2013 4:12 pm

Problem is solved with the new kernel version :P
sheevaplugger
 
Posts: 22
Joined: Thu May 13, 2010 6:08 pm


Return to User Questions

Who is online

Users browsing this forum: No registered users and 29 guests