From: Andy Gospodarek <andy@greyhouse.net>
To: netdev@vger.kernel.org
Cc: mchan@broadcom.com, saeedm@mellanox.com,
	Andy Gospodarek <gospo@broadcom.com>
Subject: [RFC 0/9] net: create adaptive software irq moderation library
Date: Mon,  6 Nov 2017 00:44:47 -0500	[thread overview]
Message-ID: <1509947098-10148-2-git-send-email-andy@greyhouse.net> (raw)
In-Reply-To: <1509947098-10148-1-git-send-email-andy@greyhouse.net>
From: Andy Gospodarek <gospo@broadcom.com>
This RFC converts the adaptive interrupt moderation library from the
mlx5_en driver into a library so it can be used by any driver.  The last
patch in this set adds support for interrupt moderation in the bnxt_en
driver.
The main purpose of this code in the mlx5 driver is to allow an                                           administrator to make sure that default coalesce settings are optimized                                   for low latency, but quickly adapt to handle high throughput traffic and
optimize how many packets are received during each napi poll.
For any new driver the following changes would ne needed to use this
library:
- add elements in ring struct to track items needed by this library
- create function that can be called to actually set coalesce settings
  for the driver
My main reason for making this an RFC is that I would like verification
from Mellanox that the performance of their driver does not change in a
unintended way.  I did some basic testing (netperf) and did not note a
statistically significant change in throughput or CPU utilization before
and after this set.  
Andy Gospodarek (9):
  mlx5_en: move interrupt moderation structs to new file
  mlx5_en: move interrupt moderation forward delcarations
  mlx5_en: remove rq references in mlx5e_rx_am
  mlx5_en: move AM logic enums
  mlx5_en: move generic functions to new file
  mlx5_en: rename en_rx_am.h to net_rx_am.h
  mlx5_en: remove Mellanox references in AM code
  net: move adaptive interrpt coalescing code to lib/
  bnxt_en: add support for software adaptive interrupt moderation
 drivers/net/ethernet/broadcom/bnxt/Makefile        |   2 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          |  51 ++++
 drivers/net/ethernet/broadcom/bnxt/bnxt.h          |  34 ++-
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  |   7 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_rx_am.c    |  32 +++
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |  43 +--
 .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |   6 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |  18 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |   4 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.c | 298 +-------------------
 drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c  |   5 +-
 include/linux/mlx5/mlx5_ifc.h                      |   6 -
 include/linux/net_rx_am.h                          | 109 ++++++++
 lib/Makefile                                       |   2 +-
 lib/net_rx_am.c                                    | 306 +++++++++++++++++++++
 15 files changed, 558 insertions(+), 365 deletions(-)
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_rx_am.c
 create mode 100644 include/linux/net_rx_am.h
 create mode 100644 lib/net_rx_am.c
-- 
2.7.4
next prev parent reply	other threads:[~2017-11-06  5:45 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-06  5:44 [RFC 0/9] net: create adaptive software irq moderation library Andy Gospodarek
2017-11-06  5:44 ` Andy Gospodarek [this message]
2017-11-06  5:44 ` [RFC 1/9] mlx5_en: move interrupt moderation structs to new file Andy Gospodarek
2017-11-06  5:44 ` [RFC 2/9] mlx5_en: move interrupt moderation forward declarations Andy Gospodarek
2017-11-06  5:44 ` [RFC 2/9] mlx5_en: move interrupt moderation forward delcarations Andy Gospodarek
2017-11-06  5:44 ` [RFC 3/9] mlx5_en: remove rq references in mlx5e_rx_am Andy Gospodarek
2017-11-06  5:44 ` [RFC 4/9] mlx5_en: move AM logic enums Andy Gospodarek
2017-11-06  5:44 ` [RFC 5/9] mlx5_en: move generic functions to new file Andy Gospodarek
2017-11-06  5:44 ` [RFC 6/9] mlx5_en: rename en_rx_am.h to net_rx_am.h Andy Gospodarek
2017-11-06  5:44 ` [RFC 7/9] mlx5_en: remove Mellanox references in AM code Andy Gospodarek
2017-11-06  5:44 ` [RFC 8/9] net: move adaptive interrupt coalescing code to lib/ Andy Gospodarek
2017-11-06  5:44 ` [RFC 8/9] net: move adaptive interrpt " Andy Gospodarek
2017-11-06  5:44 ` [RFC 9/9] bnxt_en: add support for software adaptive interrupt moderation Andy Gospodarek
2017-11-06 21:26   ` Michael Chan
2017-11-07  1:05 ` [RFC 0/9] net: create adaptive software irq moderation library Saeed Mahameed
2017-11-24 12:05 ` Saeed Mahameed
2017-11-24 12:20   ` Saeed Mahameed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox
  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):
  git send-email \
    --in-reply-to=1509947098-10148-2-git-send-email-andy@greyhouse.net \
    --to=andy@greyhouse.net \
    --cc=gospo@broadcom.com \
    --cc=mchan@broadcom.com \
    --cc=netdev@vger.kernel.org \
    --cc=saeedm@mellanox.com \
    /path/to/YOUR_REPLY
  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
  Be sure your reply has a Subject: header at the top and a blank line
  before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).