]> git.dujemihanovic.xyz Git - u-boot.git/commit
net: cpsw: am335x: Drop constant link checking from rx/tx path's
authorStefan Roese <sr@denx.de>
Mon, 25 Aug 2014 09:26:19 +0000 (11:26 +0200)
committerTom Rini <trini@ti.com>
Thu, 28 Aug 2014 21:18:49 +0000 (17:18 -0400)
commit5a834c1f9e8ba6995c24bb93da4e766af9374f5b
tree49772caa73a3b964203e239d5c842e524eaf8ef7
parent9a65cb7ffe434236e8cdcb57d3937cef2828f4d0
net: cpsw: am335x: Drop constant link checking from rx/tx path's

We noticed on the DXR2 platform (AM335x with a SMSC LAN9303 switch connected
to the CPSW MAC) that the network performance in U-Boot is quite poor. Only
when the transfer is started without a cable connected, and the cable is
plugged after the first timeout "T" occured, an increased in performance
can be seen. Debugging has revealed, that the cpsw driver has constant
link checking builtin into the rx and tx functions. This results in the
bad performance and seems to be unnecessary. The link has already been
checked in the init function, before the transfer is started. This usually
is sufficient.

BTW: I have seen no other network driver in U-Boot so far, that constantly
checks for link in the rx / tx functions.

The performance numbers on the DXR2 board are:

0.56 MiB/s cpsw_check_link() in rx and tx path
0.87 MiB/s cpsw_check_link() only in tx path
1.0  MiB/s cpsw_check_link() only in rx path
2.7  MiB/s no cpsw_check_link() in rx and tx path

So with this patch the network performance on DXR2 increases from 0.56
to 2.7 MiB/s (nearly 5 times as fast).

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: Samuel Egli <samuel.egli@siemens.com>
Tested-by: Heiko Schocher <hs@denx.de>
Cc: Vladimir Koutny <vladimir.koutny@streamunlimited.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Tom Rini <trini@ti.com>
drivers/net/cpsw.c