• Horatiu Vultur's avatar
    net: lan966x: Improve the CPU TX bitrate. · fb9eb027
    Horatiu Vultur authored
    When doing manual injection of the frame, it is required to check if the
    TX FIFO is ready to accept the next word of the frame. For this we are
    using 'readx_poll_timeout_atomic', the only problem is that before it
    actually checks the status, is determining the time when to finish polling
    the status. Which seems to be an expensive operation.
    Therefore check the status of the TX FIFO before calling
    'readx_poll_timeout_atomic'.
    Doing this will improve the TX bitrate by ~70%. Because 99% the FIFO is
    ready by that time. The measurements were done using iperf3.
    
    Before:
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.03  sec  55.2 MBytes  46.2 Mbits/sec    0 sender
    [  5]   0.00-10.04  sec  53.8 MBytes  45.0 Mbits/sec      receiver
    
    After:
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.10  sec  95.0 MBytes  78.9 Mbits/sec    0 sender
    [  5]   0.00-10.11  sec  95.0 MBytes  78.8 Mbits/sec      receiver
    Signed-off-by: default avatarHoratiu Vultur <horatiu.vultur@microchip.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    fb9eb027
lan966x_main.c 28.7 KB