Skip to content

Commit 5a7e5bc

Browse files
w1ldptrSaeed Mahameed
authored andcommitted
net/mlx5e: Extend tc flow struct with reference counter
With new classifier type that doesn't require rtnl lock, following invariant holds: - Filter with specified cookie created only once. - Filter with specified cookie deleted only once. - Stats updates can be performed in parallel to each other. Extend tc flow with rcu and reference counter. To protect from concurrent delete, get reference to tc flow when: - Reading flow stats. - Accessing flow in neigh update handler. - Accessing flow in neigh update used value handler. Only free flow when reference counter reached zero. Modify flow cleanup to account for flows that could be not fully initialized by checking if flow is actually in the list of corresponding mod_hdr, hairpin and encap entries. Don't cleanup flow directly in case of error to allow concurrent neigh update (neigh update will be modified to always take reference to flow when using it). Signed-off-by: Vlad Buslov <[email protected]> Reviewed-by: Jianbo Liu <[email protected]> Reviewed-by: Roi Dayan <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent 233fd21 commit 5a7e5bc

File tree

1 file changed

+105
-88
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core

1 file changed

+105
-88
lines changed

0 commit comments

Comments
 (0)