Thanks Andy for your hard work. Looks great overall!

On 1/4/2018 10:21 PM, Andy Gospodarek wrote:
From: Andy Gospodarek <go...@broadcom.com>

This converts the dynamic interrupt moderation library from the mlx5_en driver
into a library so it can be used by any driver.  The penultimatepatch in this
Had to look up "penultimatepatch " :), but aren't these two words?

set adds support for interrupt moderation in the bnxt_en driver and the last
patch creates an entry in the MAINTAINERS file.

The main purpose of this code in the mlx5_en 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 be 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

Credit to Rob Rice and Lee Reed for doing some of the initial proof of
concept and testing for this patch and Tal Gilboa and Or Gerlitz for their
comments, etc on this set.

Andy Gospodarek (10):
   net/mlx5e: move interrupt moderation structs to new file
   net/mlx5e: move interrupt moderation forward declarations
   net/mlx5e: remove rq references in mlx5e_rx_am
   net/mlx5e: move AM logic enums
   net/mlx5e: move generic functions to new file
   net/mlx5e: change Mellanox references in DIM code
   net: move dynamic interrpt coalescing code to include/linux
interrpt -> interrupt. The topic of the actual patch was fixed, only left in the cover.

   net/dim: use struct net_dim_sample as arg to net_dim
   bnxt_en: add support for software dynamic interrupt moderation
   MAINTAINERS: add entry for Dynamic Interrupt Moderation

  MAINTAINERS                                        |   5 +
  drivers/net/ethernet/broadcom/bnxt/Makefile        |   2 +-
  drivers/net/ethernet/broadcom/bnxt/bnxt.c          |  52 +++
  drivers/net/ethernet/broadcom/bnxt/bnxt.h          |  34 +-
  drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c      |  32 ++
  drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  |  12 +
  drivers/net/ethernet/mellanox/mlx5/core/Makefile   |   2 +-
  drivers/net/ethernet/mellanox/mlx5/core/en.h       |  46 +--
  drivers/net/ethernet/mellanox/mlx5/core/en_dim.c   |  49 +++
  .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |  12 +-
  drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |  32 +-
  drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |   4 +-
  drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.c | 341 -------------------
  drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c  |  10 +-
  drivers/net/ethernet/mellanox/mlx5/core/net_dim.h  | 108 ++++++
  include/linux/mlx5/mlx5_ifc.h                      |   6 -
  include/linux/net_dim.h                            | 372 +++++++++++++++++++++
  17 files changed, 693 insertions(+), 426 deletions(-)
  create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c
  create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_dim.c
  delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en_rx_am.c
  create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/net_dim.h
mlx5/core/net_dim.h was removed from code. Please fix the cover.
  create mode 100644 include/linux/net_dim.h

Reply via email to