aboutsummaryrefslogtreecommitdiff
path: root/include/linux/mlx5
diff options
context:
space:
mode:
authorGravatar Paul Blakey <paulb@nvidia.com> 2021-07-11 16:56:54 +0300
committerGravatar Saeed Mahameed <saeedm@nvidia.com> 2021-10-29 13:53:28 -0700
commit504e15724893a839213fad5eedfbd511d9ba75cc (patch)
treeb53506309b97afaef5bbe3b103c06a6d86cc08be /include/linux/mlx5
parentnet/mlx5e: IPsec: Refactor checksum code in tx data path (diff)
downloadlinux-504e15724893a839213fad5eedfbd511d9ba75cc.tar.gz
linux-504e15724893a839213fad5eedfbd511d9ba75cc.tar.bz2
linux-504e15724893a839213fad5eedfbd511d9ba75cc.zip
net/mlx5: Allow skipping counter refresh on creation
CT creates a counter for each CT rule, and for each such counter, fs_counters tries to queue mlx5_fc_stats_work() work again via mod_delayed_work(0) call to refresh all counters. This call has a large performance impact when reaching high insertion rate and accounts for ~8% of the insertion time when using software steering. Allow skipping the refresh of all counters during counter creation. Change CT to use this refresh skipping for it's counters. Signed-off-by: Paul Blakey <paulb@nvidia.com> Reviewed-by: Roi Dayan <roid@nvidia.com> Reviewed-by: Oz Shlomo <ozsh@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'include/linux/mlx5')
-rw-r--r--include/linux/mlx5/fs.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/mlx5/fs.h b/include/linux/mlx5/fs.h
index a7e1155bc4da..cd2d4c572367 100644
--- a/include/linux/mlx5/fs.h
+++ b/include/linux/mlx5/fs.h
@@ -245,6 +245,10 @@ int mlx5_modify_rule_destination(struct mlx5_flow_handle *handler,
struct mlx5_flow_destination *old_dest);
struct mlx5_fc *mlx5_fc_create(struct mlx5_core_dev *dev, bool aging);
+
+/* As mlx5_fc_create() but doesn't queue stats refresh thread. */
+struct mlx5_fc *mlx5_fc_create_ex(struct mlx5_core_dev *dev, bool aging);
+
void mlx5_fc_destroy(struct mlx5_core_dev *dev, struct mlx5_fc *counter);
u64 mlx5_fc_query_lastuse(struct mlx5_fc *counter);
void mlx5_fc_query_cached(struct mlx5_fc *counter,