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