diff options
author | Eyal Davidovich | 2018-10-20 15:18:00 +0200 |
---|---|---|
committer | Saeed Mahameed | 2018-12-11 23:52:20 +0100 |
commit | 5c7e8bbb025726f9cb9b2bc050509a94262426f8 (patch) | |
tree | ea40d9a9400cf75a7a4d7d1ad7d5ef9856362141 /drivers/net/ethernet/mellanox/mlx5/core/en.h | |
parent | net/mlx5e: Monitor counters commands support (diff) | |
download | kernel-qcow2-linux-5c7e8bbb025726f9cb9b2bc050509a94262426f8.tar.gz kernel-qcow2-linux-5c7e8bbb025726f9cb9b2bc050509a94262426f8.tar.xz kernel-qcow2-linux-5c7e8bbb025726f9cb9b2bc050509a94262426f8.zip |
net/mlx5e: Use monitor counters for update stats
- Adding new notifier block (struct mlx5_nb) monitor_counters_nb
for handeling MONITOR_COUNTER new event type.
- Adding work queue element: monitor_counters_work for re-arm and
update stats.
- We re-queue the update stat work, only when working over firmware
that doesn't support the monitored counters.
Signed-off-by: Eyal Davidovich <eyald@mellanox.com>
Reviewed-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en.h')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h index 9ea0f853c3bb..1c4e033b7509 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -685,6 +685,8 @@ struct mlx5e_priv { struct work_struct set_rx_mode_work; struct work_struct tx_timeout_work; struct work_struct update_stats_work; + struct work_struct monitor_counters_work; + struct mlx5_nb monitor_counters_nb; struct mlx5_core_dev *mdev; struct net_device *netdev; @@ -940,6 +942,7 @@ int mlx5e_create_tises(struct mlx5e_priv *priv); void mlx5e_cleanup_nic_tx(struct mlx5e_priv *priv); int mlx5e_close(struct net_device *netdev); int mlx5e_open(struct net_device *netdev); +void mlx5e_update_ndo_stats(struct mlx5e_priv *priv); void mlx5e_queue_update_stats(struct mlx5e_priv *priv); int mlx5e_bits_invert(unsigned long a, int size); |