Skip to content
  • Stefan Roese's avatar
    net: cpsw: am335x: Drop constant link checking from rx/tx path's · 5a834c1f
    Stefan Roese authored
    
    
    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: default avatarStefan Roese <sr@denx.de>
    Tested-by: default avatarSamuel Egli <samuel.egli@siemens.com>
    Tested-by: default avatarHeiko 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>
    5a834c1f