Re: [net-next 00/10] net: create dynamic software irq moderation library

Tal Gilboa
2018-01-05T08:14:51Z

Thanks Andy for your hard work. Looks great overall!

On 1/4/2018 10:21 PM, Andy Gospodarek wrote:
> From: Andy Gospodarek <gospo@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
>