]> git.baikalelectronics.ru Git - kernel.git/commit
net: mvneta: add BQL support
authorMarcin Wojtas <mw@semihalf.com>
Mon, 16 Jan 2017 17:08:32 +0000 (18:08 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Jan 2017 01:07:29 +0000 (20:07 -0500)
commitd284d1fe9dde537068ec0c2c43eb9a826e6702d4
treea0cbb492501bcea61515bb0320d7037e6e47e862
parent3f9090ad8dccf4e7116f404083195107e13a3691
net: mvneta: add BQL support

Tests showed that when whole bandwidth is consumed, the latency for
various kind of traffic can reach high values. With saturated
link (e.g. with iperf from target to host) simple ping could take
significant amount of time. BQL proved to improve this situation
when implemented in mvneta driver. Measurements of ping latency
for 3 link speeds:
Speed | Latency w/o BQL | Latency with BQL
10    |      7-14 ms    |     3.5 ms
100   |      2-12 ms    |     0.6 ms
1000  |   often timeout |   up to 2ms

Decreasing latency as above result in sligt performance cost - 4kpps
(-1.4%) when pushing 64B packets via two bridged interfaces of Armada 38x.
For 1500B packets in the same setup, the mpstat tool showed +8% of
CPU occupation (default affinity, second CPU idle). Even though this
cost seems reasonable to take, considering other improvements.

This commit adds byte queue limit mechanism for the mvneta driver.

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/mvneta.c