mbox series

[net-next,0/4] Introduce adaptive TX interrupt moderation to net DIM

Message ID 1522391853-37298-1-git-send-email-talgi@mellanox.com
Headers show
Series Introduce adaptive TX interrupt moderation to net DIM | expand

Message

Tal Gilboa March 30, 2018, 6:37 a.m. UTC
Net DIM is a library designed for dynamic interrupt moderation. It was
implemented and optimized with receive side interrupts in mind, since these
are usually the CPU expensive ones. This patch-set introduces adaptive transmit
interrupt moderation to net DIM, complete with a usage in the mlx5e driver.
Using adaptive TX behavior would reduce interrupt rate for multiple scenarios.
Furthermore, it is essential for increasing bandwidth on cases where payload
aggregation is required.

Tal Gilboa (4):
  net/dim: Rename *_get_profile() functions to *_get_rx_moderation()
  net/dim: Add "enabled" field to net_dim struct
  net/dim: Support adaptive TX moderation
  net/mlx5e: Enable adaptive-TX moderation

 drivers/net/ethernet/broadcom/bcmsysport.c         |  2 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c      |  8 +--
 drivers/net/ethernet/broadcom/genet/bcmgenet.c     |  2 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |  5 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_dim.c   | 28 ++++++---
 .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   | 35 +++++++----
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  | 34 ++++++++--
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |  2 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c  | 37 ++++++++---
 include/linux/net_dim.h                            | 72 +++++++++++++++++-----
 10 files changed, 169 insertions(+), 56 deletions(-)

Comments

Tal Gilboa March 30, 2018, 6:43 a.m. UTC | #1
On 3/30/2018 9:37 AM, Tal Gilboa wrote:
> Net DIM is a library designed for dynamic interrupt moderation. It was
> implemented and optimized with receive side interrupts in mind, since these
> are usually the CPU expensive ones. This patch-set introduces adaptive transmit
> interrupt moderation to net DIM, complete with a usage in the mlx5e driver.
> Using adaptive TX behavior would reduce interrupt rate for multiple scenarios.
> Furthermore, it is essential for increasing bandwidth on cases where payload
> aggregation is required.

Important note: In order to avoid conflicts, this patch-set is rebased 
over Florian Fainelli's "[PATCH net-next v2 3/3] net: bcmgenet: Fix 
coalescing settings handling" patch.

> 
> Tal Gilboa (4):
>    net/dim: Rename *_get_profile() functions to *_get_rx_moderation()
>    net/dim: Add "enabled" field to net_dim struct
>    net/dim: Support adaptive TX moderation
>    net/mlx5e: Enable adaptive-TX moderation
> 
>   drivers/net/ethernet/broadcom/bcmsysport.c         |  2 +-
>   drivers/net/ethernet/broadcom/bnxt/bnxt_dim.c      |  8 +--
>   drivers/net/ethernet/broadcom/genet/bcmgenet.c     |  2 +-
>   drivers/net/ethernet/mellanox/mlx5/core/en.h       |  5 +-
>   drivers/net/ethernet/mellanox/mlx5/core/en_dim.c   | 28 ++++++---
>   .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   | 35 +++++++----
>   drivers/net/ethernet/mellanox/mlx5/core/en_main.c  | 34 ++++++++--
>   drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |  2 +-
>   drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c  | 37 ++++++++---
>   include/linux/net_dim.h                            | 72 +++++++++++++++++-----
>   10 files changed, 169 insertions(+), 56 deletions(-)
>
David Miller April 1, 2018, 2:02 a.m. UTC | #2
From: Tal Gilboa <talgi@mellanox.com>
Date: Fri, 30 Mar 2018 09:37:29 +0300

> Net DIM is a library designed for dynamic interrupt moderation. It was
> implemented and optimized with receive side interrupts in mind, since these
> are usually the CPU expensive ones. This patch-set introduces adaptive transmit
> interrupt moderation to net DIM, complete with a usage in the mlx5e driver.
> Using adaptive TX behavior would reduce interrupt rate for multiple scenarios.
> Furthermore, it is essential for increasing bandwidth on cases where payload
> aggregation is required.

Series applied.
David Miller April 1, 2018, 3:19 a.m. UTC | #3
From: David Miller <davem@davemloft.net>
Date: Sat, 31 Mar 2018 22:02:55 -0400 (EDT)

> From: Tal Gilboa <talgi@mellanox.com>
> Date: Fri, 30 Mar 2018 09:37:29 +0300
> 
>> Net DIM is a library designed for dynamic interrupt moderation. It was
>> implemented and optimized with receive side interrupts in mind, since these
>> are usually the CPU expensive ones. This patch-set introduces adaptive transmit
>> interrupt moderation to net DIM, complete with a usage in the mlx5e driver.
>> Using adaptive TX behavior would reduce interrupt rate for multiple scenarios.
>> Furthermore, it is essential for increasing bandwidth on cases where payload
>> aggregation is required.
> 
> Series applied.

This breaks the build:

drivers/net/ethernet/broadcom/bcmsysport.c: In function ‘bcm_sysport_set_coalesce’:
drivers/net/ethernet/broadcom/bcmsysport.c:657:11: error: implicit declaration of function ‘net_dim_get_def_profile’; did you mean ‘net_dim_exit_parking’? [-Werror=implicit-function-declaration]
   moder = net_dim_get_def_profile(priv->dim.dim.mode);
           ^~~~~~~~~~~~~~~~~~~~~~~
Tal Gilboa April 1, 2018, 6:49 a.m. UTC | #4
On 4/1/2018 6:19 AM, David Miller wrote:
> From: David Miller <davem@davemloft.net>
> Date: Sat, 31 Mar 2018 22:02:55 -0400 (EDT)
> 
>> From: Tal Gilboa <talgi@mellanox.com>
>> Date: Fri, 30 Mar 2018 09:37:29 +0300
>>
>>> Net DIM is a library designed for dynamic interrupt moderation. It was
>>> implemented and optimized with receive side interrupts in mind, since these
>>> are usually the CPU expensive ones. This patch-set introduces adaptive transmit
>>> interrupt moderation to net DIM, complete with a usage in the mlx5e driver.
>>> Using adaptive TX behavior would reduce interrupt rate for multiple scenarios.
>>> Furthermore, it is essential for increasing bandwidth on cases where payload
>>> aggregation is required.
>>
>> Series applied.
> 
> This breaks the build:
> 
> drivers/net/ethernet/broadcom/bcmsysport.c: In function ‘bcm_sysport_set_coalesce’:
> drivers/net/ethernet/broadcom/bcmsysport.c:657:11: error: implicit declaration of function ‘net_dim_get_def_profile’; did you mean ‘net_dim_exit_parking’? [-Werror=implicit-function-declaration]
>     moder = net_dim_get_def_profile(priv->dim.dim.mode);
>             ^~~~~~~~~~~~~~~~~~~~~~~
> 
Rebase issues, sorry.
Sent a fixup patch.