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: > > Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro at 6wind.com> > > --- > > 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