On Wed, Nov 15, 2017 at 09:00:09PM +0200, Eran Ben Elisha wrote: > From: Inbar Karmy <inb...@mellanox.com> > > 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 >