On Wed, Nov 15, 2017 at 09:00:09PM +0200, Eran Ben Elisha wrote:
> From: Inbar Karmy <[email protected]>
>
> This RFC adds support for configuring PFC stall prevention through ethtool.
>
> In the event where the device unexpectedly becomes unresponsive for a long
> period of time, flow control mechanism may propagate pause frames which will
> cause congestion spreading to the entire network.
>
> To prevent this scenario, the device may implement a protection mechanism for
> monitoring and resolving such state. The following patches allow the user to
> control the stall prevention functionality.
>
> PFC stall prevention configuration is done via ethtool -a (pause).
> Two modes are introduced:
> Default - current behavior per driver.
> Auto - protection mechanism controlled automatically by the driver.
> Due to lack of extension ability of ethtool_ops set_pauseparam, a new
> ethtool_ops get_pfc_prevention_mode is introduced.
I don't like adding another ethtool_ops callback tightly tied to the
structures passed via ioctl() but when I started to think what to
suggest as an alternative, I started to wonder if it is really necessary
to add a new ethtool command at all. Couldn't this be handled as
a tunable?
Michal Kubecek
> I based this patch set on net-next commit 50895b9de1d3("tcp: highest_sack fix
> ").
>
> Inbar Karmy (2):
> ethtool: Add support for configuring PFC stall prevention in ethtool
> net/mlx5e: PFC stall prevention support
>
> .../net/ethernet/mellanox/mlx5/core/en_ethtool.c | 51 ++++++++++++++++++++
> drivers/net/ethernet/mellanox/mlx5/core/port.c | 56
> ++++++++++++++++++----
> include/linux/ethtool.h | 8 ++++
> include/linux/mlx5/mlx5_ifc.h | 22 +++++++--
> include/linux/mlx5/port.h | 5 ++
> include/uapi/linux/ethtool.h | 20 ++++++++
> net/core/ethtool.c | 39 +++++++++++++++
> 7 files changed, 188 insertions(+), 13 deletions(-)
>
> --
> 1.8.3.1
>