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

Andy Gospodarek
2018-01-05T13:48:58Z

On Fri, Jan 05, 2018 at 10:14:43AM +0200, Tal Gilboa wrote:
> 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.

I'm just going to run ispell on everything again. :-)

>
> > 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.

Yes, it's odd that this is there. I'll see if I can figure out why as this
file should have been deleted with patch "net: move dynamic interrpt coalescing
code to include/linux" but it looks like maybe it was not.

> > create mode 100644 include/linux/net_dim.h
> >