DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ophir Munk <ophirmu@mellanox.com>
To: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	Thomas Monjalon <thomas@monjalon.net>,
	"Olga Shern" <olgas@mellanox.com>,
	Shahaf Shuler <shahafs@mellanox.com>
Subject: Re: [dpdk-dev] [PATCH v1] net/mlx4: add an RSS hash update callback
Date: Mon, 21 May 2018 18:20:18 +0000	[thread overview]
Message-ID: <HE1PR0501MB231461D6ACF284F3CF913C88D1950@HE1PR0501MB2314.eurprd05.prod.outlook.com> (raw)
In-Reply-To: <20180521160825.GU6497@6wind.com>

For 18.05 this path can be withdrawn. 
It has already been suppressed a few days ago.

Thanks,
Ophir

> -----Original Message-----
> From: Adrien Mazarguil [mailto:adrien.mazarguil@6wind.com]
> Sent: Monday, May 21, 2018 7:08 PM
> To: Ophir Munk <ophirmu@mellanox.com>
> Cc: dev@dpdk.org; Thomas Monjalon <thomas@monjalon.net>; Olga Shern
> <olgas@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> Subject: Re: [PATCH v1] net/mlx4: add an RSS hash update callback
> 
> On Thu, May 17, 2018 at 11:04:40AM +0000, Ophir Munk wrote:
> > Add an RSS hash update callback to eth_dev_ops.
> >
> > Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
> 
> This patch allows applications to configure legacy RSS past initial port
> configuration, but doesn't take input parameters into account. Its purpose is
> to silence errors instead of telling users it's unsupported.
> 
> For this reason, I suggest to either withdraw this patch entirely, or fully
> implement legacy RSS configuration by making rss_hash_update more than a
> no-op and by adding rss_hash_conf_get, reta_update and reta_query as part
> of the same task for completeness.
> 
> > ---
> >  drivers/net/mlx4/Makefile   |  1 +
> >  drivers/net/mlx4/mlx4.c     |  1 +
> >  drivers/net/mlx4/mlx4.h     |  7 ++++++
> >  drivers/net/mlx4/mlx4_rss.c | 59
> > +++++++++++++++++++++++++++++++++++++++++++++
> >  4 files changed, 68 insertions(+)
> >  create mode 100644 drivers/net/mlx4/mlx4_rss.c
> >
> > diff --git a/drivers/net/mlx4/Makefile b/drivers/net/mlx4/Makefile
> > index 73f9d40..eb89f6b 100644
> > --- a/drivers/net/mlx4/Makefile
> > +++ b/drivers/net/mlx4/Makefile
> > @@ -23,6 +23,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) +=
> mlx4_rxq.c
> >  SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_rxtx.c
> >  SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_txq.c
> >  SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_utils.c
> > +SRCS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += mlx4_rss.c
> >
> >  ifeq ($(CONFIG_RTE_LIBRTE_MLX4_DLOPEN_DEPS),y)
> >  INSTALL-$(CONFIG_RTE_LIBRTE_MLX4_PMD)-lib += $(LIB_GLUE) diff --git
> > a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index
> > 9f8ecd0..7000511 100644
> > --- a/drivers/net/mlx4/mlx4.c
> > +++ b/drivers/net/mlx4/mlx4.c
> > @@ -261,6 +261,7 @@ static const struct eth_dev_ops mlx4_dev_ops = {
> >  	.flow_ctrl_get = mlx4_flow_ctrl_get,
> >  	.flow_ctrl_set = mlx4_flow_ctrl_set,
> >  	.mtu_set = mlx4_mtu_set,
> > +	.rss_hash_update = mlx4_rss_hash_update,
> >  	.filter_ctrl = mlx4_filter_ctrl,
> >  	.rx_queue_intr_enable = mlx4_rx_intr_enable,
> >  	.rx_queue_intr_disable = mlx4_rx_intr_disable, diff --git
> > a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h index
> > 300cb4d..6842a71 100644
> > --- a/drivers/net/mlx4/mlx4.h
> > +++ b/drivers/net/mlx4/mlx4.h
> > @@ -50,6 +50,9 @@
> >  /** Port parameter. */
> >  #define MLX4_PMD_PORT_KVARG "port"
> >
> > +/** Supported RSS. */
> > +#define MLX4_RSS_HF_MASK (~(ETH_RSS_IP | ETH_RSS_UDP |
> ETH_RSS_TCP))
> > +
> >  enum {
> >  	PCI_VENDOR_ID_MELLANOX = 0x15b3,
> >  };
> > @@ -144,4 +147,8 @@ void mlx4_rxq_intr_disable(struct priv *priv);
> > int mlx4_rx_intr_disable(struct rte_eth_dev *dev, uint16_t idx);  int
> > mlx4_rx_intr_enable(struct rte_eth_dev *dev, uint16_t idx);
> >
> > +/* mlx4_rss.c */
> > +
> > +int mlx4_rss_hash_update(struct rte_eth_dev *dev,
> > +			 struct rte_eth_rss_conf *rss_conf);
> >  #endif /* RTE_PMD_MLX4_H_ */
> > diff --git a/drivers/net/mlx4/mlx4_rss.c b/drivers/net/mlx4/mlx4_rss.c
> > new file mode 100644 index 0000000..656a00d
> > --- /dev/null
> > +++ b/drivers/net/mlx4/mlx4_rss.c
> > @@ -0,0 +1,59 @@
> > +/* SPDX-License-Identifier: BSD-3-Clause
> > + * Copyright 2015 6WIND S.A.
> > + * Copyright 2015 Mellanox Technologies, Ltd  */
> > +
> > +#include <stddef.h>
> > +#include <stdint.h>
> > +#include <errno.h>
> > +#include <string.h>
> > +
> > +/* Verbs headers do not support -pedantic. */
> > +/* ISO C doesn't support unnamed structs/unions, disabling -pedantic.
> > +*/ #ifdef PEDANTIC #pragma GCC diagnostic ignored "-Wpedantic"
> > +#endif
> > +#include <infiniband/verbs.h>
> > +#ifdef PEDANTIC
> > +#pragma GCC diagnostic error "-Wpedantic"
> > +#endif
> > +
> > +#include "mlx4.h"
> > +#include "mlx4_flow.h"
> > +#include "mlx4_utils.h"
> > +
> > +/**
> > + * DPDK callback to update the RSS hash configuration.
> > + *
> > + * @param dev
> > + *   Pointer to Ethernet device structure.
> > + * @param[in] rss_conf
> > + *   RSS configuration data.
> > + *
> > + * @return
> > + *   0 on success, a negative errno value otherwise and rte_errno is set.
> > + */
> > +int
> > +mlx4_rss_hash_update(struct rte_eth_dev *dev,
> > +		     struct rte_eth_rss_conf *rss_conf) {
> > +	/*
> > +	 * limitation: MLX4 supports all of IP, UDP and TCP hash
> > +	 * functions together and not in partial combinations
> > +	 * Just make sure no unsupported HF is requested
> > +	 */
> > +	if (rss_conf->rss_hf & MLX4_RSS_HF_MASK) {
> > +		rte_errno = EINVAL;
> > +		return -rte_errno;
> > +	}
> > +	if (rss_conf->rss_key && rss_conf->rss_key_len) {
> > +		/*
> > +		 * Currently mlx4 RSS key cannot be updated
> > +		 */
> > +		ERROR("port %u RSS key cannot be updated",
> > +			dev->data->port_id);
> > +		rte_errno = EINVAL;
> > +		return -rte_errno;
> > +	}
> > +	return 0;
> > +}
> > --
> > 2.7.4
> >
> 
> --
> Adrien Mazarguil
> 6WIND

      reply	other threads:[~2018-05-21 18:20 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-17 11:04 Ophir Munk
2018-05-21 16:08 ` Adrien Mazarguil
2018-05-21 18:20   ` Ophir Munk [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=HE1PR0501MB231461D6ACF284F3CF913C88D1950@HE1PR0501MB2314.eurprd05.prod.outlook.com \
    --to=ophirmu@mellanox.com \
    --cc=adrien.mazarguil@6wind.com \
    --cc=dev@dpdk.org \
    --cc=olgas@mellanox.com \
    --cc=shahafs@mellanox.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).