Thread (12 messages) 12 messages, 4 authors, 2016-10-12

Re: [PATCH] net/mlx5: return RSS hash result in mbuf

From: Nélio Laranjeiro <hidden>
Date: 2016-09-27 14:29:57

Hi Bruce,

On Tue, Sep 27, 2016 at 03:11:10PM +0100, Bruce Richardson wrote:
On Wed, Sep 14, 2016 at 10:16:05AM +0200, Nelio Laranjeiro wrote:
quoted
Signed-off-by: Nelio Laranjeiro <redacted>
---
 drivers/net/mlx5/mlx5_rxq.c  | 1 +
 drivers/net/mlx5/mlx5_rxtx.c | 6 +++++-
 drivers/net/mlx5/mlx5_rxtx.h | 2 ++
 3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index f6f4315..65c264b 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -926,6 +926,7 @@ rxq_ctrl_setup(struct rte_eth_dev *dev, struct rxq_ctrl *rxq_ctrl,
 		.rxq = {
 			.elts_n = log2above(desc),
 			.mp = mp,
+			.rss_hash = !!(priv->rxqs_n > 1),
 		},
Two comments on this:
1. I don't think the !! is needed, since this is a comparison which will result
   in 0 or 1, rather than an int value that needs to be clamped to those values.
Ok for this one.
2. Why limit the use of RSS to when there is more than one RX queues? Sometimes
   it might be useful to have a precomputed hash for a packet even when not
   spreading packets among RX queues. For example, when using a single RX queue,
   but doing a hash table lookup for each packet, the RSS value could be used
   as the lookup hash.

/Bruce
ConnectX-4 NICs does not return a hash value for a single queue as
software does not request RSS in this situation, that is why it is not
filled.

I will send a v2 to also fix a bug discovered since concerning the hash
result which is not retrieve from the right place when Completion Queue
Entry is compressed.

Regards,

-- 
Nélio Laranjeiro
6WIND
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help