Message ID | 20220421203656.3252574-1-dsosnowski@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Raslan Darawsheh |
Headers | show |
Series | net/mlx5: fix RSS hash types adjustment | expand |
Context | Check | Description |
---|---|---|
ci/iol-abi-testing | success | Testing PASS |
ci/iol-x86_64-compile-testing | success | Testing PASS |
ci/iol-x86_64-unit-testing | success | Testing PASS |
ci/iol-aarch64-compile-testing | success | Testing PASS |
ci/iol-aarch64-unit-testing | success | Testing PASS |
ci/github-robot: build | success | github build: passed |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/intel-Testing | success | Testing PASS |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/iol-intel-Functional | success | Functional Testing PASS |
ci/Intel-compilation | success | Compilation OK |
ci/checkpatch | success | coding style OK |
Hi, > -----Original Message----- > From: Dariusz Sosnowski <dsosnowski@nvidia.com> > Sent: Thursday, April 21, 2022 11:37 PM > To: Matan Azrad <matan@nvidia.com>; Slava Ovsiienko > <viacheslavo@nvidia.com>; Jack Min <jackmin@nvidia.com> > Cc: dev@dpdk.org; Raslan Darawsheh <rasland@nvidia.com>; > stable@dpdk.org > Subject: [PATCH] net/mlx5: fix RSS hash types adjustment > > When an indirect action was created with an RSS action configured to > hash on both source and destination L3 addresses (or L4 ports), it caused > shared hrxq to be configured to hash only on destination address > (or port). > > This patch fixes this behavior by refining RSS types specified in > configuration before calculating hash types used for hrxq. Refining RSS > types removes *_SRC_ONLY and *_DST_ONLY flags if they are both set. > > Fixes: 212d17b6a650 ("net/mlx5: fix missing shared RSS hash types") > Cc: jackmin@nvidia.com > Cc: stable@dpdk.org > > Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com> > Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh
diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 1e9bd63635..6e30e94d07 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -14792,8 +14792,8 @@ __flow_dv_action_rss_hrxqs_release(struct rte_eth_dev *dev, * MLX5_RSS_HASH_IPV4_DST_ONLY are mutually exclusive so they can share * same slot in mlx5_rss_hash_fields. * - * @param[in] rss_types - * RSS type. + * @param[in] orig_rss_types + * RSS type as provided in shared RSS action. * @param[in, out] hash_field * hash_field variable needed to be adjusted. * @@ -14801,9 +14801,11 @@ __flow_dv_action_rss_hrxqs_release(struct rte_eth_dev *dev, * void */ void -flow_dv_action_rss_l34_hash_adjust(uint64_t rss_types, +flow_dv_action_rss_l34_hash_adjust(uint64_t orig_rss_types, uint64_t *hash_field) { + uint64_t rss_types = rte_eth_rss_hf_refine(orig_rss_types); + switch (*hash_field & ~IBV_RX_HASH_INNER) { case MLX5_RSS_HASH_IPV4: if (rss_types & MLX5_IPV4_LAYER_TYPES) {