summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/intel/igc
diff options
context:
space:
mode:
authorYevgeny Kliteynik <kliteyn@nvidia.com>2021-10-14 02:34:00 +0300
committerSaeed Mahameed <saeedm@nvidia.com>2021-12-31 00:17:37 -0800
commitcc2295cd54e4832108831fd0a119bc4e0d5f8d50 (patch)
tree014b61aa25796cd5790c4a8be0f42f2dcc9c9215 /drivers/net/ethernet/intel/igc
parentf59464e257bdbd4df6df9a4505d7858a0baf6cf7 (diff)
downloadlinux-cc2295cd54e4832108831fd0a119bc4e0d5f8d50.tar.gz
linux-cc2295cd54e4832108831fd0a119bc4e0d5f8d50.tar.bz2
linux-cc2295cd54e4832108831fd0a119bc4e0d5f8d50.zip
net/mlx5: DR, Improve steering for empty or RX/TX-only matchers
Every matcher has RX and TX paths. When a new matcher is created, its RX and TX start/end anchors are connected to the respective RX and TX anchors of the previous and next matchers. This creates a potential performance issue: when a certain rule is added to a matcher, in many cases it is RX or TX only rule, which may create a long chain of RX/TX-only paths w/o the actual rules. This patch aims to handle this issue. RX and TX matchers are now handled separately: matcher connection in the matchers chain is split into two separate lists: RX only and TX only. when a new matcher is created, it is initially created 'detached' - its RX/TX members are not inserted into the table's matcher list. When an actual rule is added, only its appropriate RX or TX nic matchers are then added to the table's nic matchers list and inserted into its place in the chain of matchers. I.e., if the rule that is being added is an RX-only rule, only the RX part of the matcher will be connected to the chain, while TX part of the matcher remains detached and doesn't prolong the TX chain of the matchers. Same goes for rule deletion: when the last RX/TX rule of the nic matcher is destroyed, the nic matcher is removed from its list. Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Diffstat (limited to 'drivers/net/ethernet/intel/igc')
0 files changed, 0 insertions, 0 deletions