On 3/23/2018 4:19 AM, Florian Fainelli wrote:
Hi all,

This patch series adds adaptive interrupt coalescing for the Gigabit Ethernet
drivers SYSTEMPORT and GENET.

This really helps lower the interrupt count and system load, as measured by
vmstat for a Gigabit TCP RX session:

I don't see an improvement in system load, the opposite - 42% vs. 100% for SYSTEMPORT and 85% vs. 100% for GENET. Both with the same bandwidth. Am I missing something? Talking about bandwidth, I would expect 941Mb/s (assuming this is TCP over IPv4). Do you know why the reduced interrupt rate doesn't improve bandwidth? Also, any effect on the client side (you mentioned enabling TX moderation for SYSTEMPORT)?


SYSTEMPORT:

without:

  1  0      0 192188      0  25472    0    0     0     0 122100 38870  1 42 57  
0  0
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.03 GBytes   884 Mbits/sec

with:

  1  0      0 192288      0  25468    0    0     0     0 58806 44401  0 100  0  
0  0
[  5]  0.0-10.0 sec  1.04 GBytes   888 Mbits/sec

GENET:

without:

  1  0      0 1170404      0  25420    0    0     0     0 130785 63402  2 85 12 
 0  0
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.04 GBytes   888 Mbits/sec

with:

  1  0      0 1170560      0  25420    0    0     0     0 50610 48477  0 100  0 
 0  0
[  5]  0.0-10.0 sec  1.05 GBytes   899 Mbits/sec

Please look at the implementation and let me know if you see any problems, this
was largely inspired by bnxt_en.

Thank you!

Florian Fainelli (2):
   net: systemport: Implement adaptive interrupt coalescing
   net: bcmgenet: Add support for adaptive RX coalescing

  drivers/net/ethernet/broadcom/bcmsysport.c     | 141 ++++++++++++++++++++++---
  drivers/net/ethernet/broadcom/bcmsysport.h     |  14 +++
  drivers/net/ethernet/broadcom/genet/bcmgenet.c | 109 +++++++++++++++----
  drivers/net/ethernet/broadcom/genet/bcmgenet.h |  12 +++
  4 files changed, 243 insertions(+), 33 deletions(-)

Reply via email to