All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shahaf Shuler <shahafs@mellanox.com>
To: Slava Ovsiienko <viacheslavo@mellanox.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [PATCH 10/14] net/mlx5: switch to the shared IB device context
Date: Thu, 21 Mar 2019 12:14:59 +0000	[thread overview]
Message-ID: <AM0PR0502MB37953DE2E1087B2068C0B612C3420@AM0PR0502MB3795.eurprd05.prod.outlook.com> (raw)
In-Reply-To: <1553155888-27498-11-git-send-email-viacheslavo@mellanox.com>

Thursday, March 21, 2019 10:11 AM, Viacheslav Ovsiienko:
> Subject: [PATCH 10/14] net/mlx5: switch to the shared IB device context
> 
> The code is updated to use the shared IB device context and device handles.
> The IB device context is shared between reprentors created over the single
> multiport IB device. All Verbs and DevX objects will be created whithin this
> shared context.
> 
> Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>

Acked-by: Shahaf Shuler <shahafs@mellanox.com>

> ---
>  drivers/net/mlx5/mlx5.c            |  7 +++----
>  drivers/net/mlx5/mlx5.h            |  1 -
>  drivers/net/mlx5/mlx5_ethdev.c     | 13 +++++++------
>  drivers/net/mlx5/mlx5_flow_dv.c    |  9 +++++----
>  drivers/net/mlx5/mlx5_flow_verbs.c |  6 ++++--
>  drivers/net/mlx5/mlx5_rxq.c        | 23 ++++++++++++-----------
>  drivers/net/mlx5/mlx5_socket.c     |  4 ++--
>  drivers/net/mlx5/mlx5_trigger.c    |  2 +-
>  drivers/net/mlx5/mlx5_txq.c        |  4 ++--
>  9 files changed, 36 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index
> a0f224b..312c42b 100644
> --- a/drivers/net/mlx5/mlx5.c
> +++ b/drivers/net/mlx5/mlx5.c
> @@ -407,7 +407,7 @@ struct mlx5_dev_spawn_data {
> 
>  	DRV_LOG(DEBUG, "port %u closing device \"%s\"",
>  		dev->data->port_id,
> -		((priv->ctx != NULL) ? priv->ctx->device->name : ""));
> +		((priv->sh->ctx != NULL) ? priv->sh->ctx->device->name :
> ""));
>  	/* In case mlx5_dev_stop() has not been called. */
>  	mlx5_dev_interrupt_handler_uninstall(dev);
>  	mlx5_traffic_disable(dev);
> @@ -1111,7 +1111,6 @@ struct mlx5_dev_spawn_data {
>  		goto error;
>  	}
>  	priv->sh = sh;
> -	priv->ctx = sh->ctx;
>  	priv->ibv_port = spawn->ibv_port;
>  	priv->mtu = ETHER_MTU;
>  #ifndef RTE_ARCH_64
> @@ -1349,7 +1348,7 @@ struct mlx5_dev_spawn_data {
>  		}
>  	}
>  #ifdef HAVE_MLX5DV_DR
> -		ns = mlx5dv_dr_create_ns(ctx,
> +		ns = mlx5dv_dr_create_ns(sh->ctx,
> 
> MLX5DV_DR_NS_DOMAIN_INGRESS_BYPASS);
>  		if (ns == NULL) {
>  			DRV_LOG(ERR, "mlx5dv_dr_create_ns failed"); @@ -
> 1357,7 +1356,7 @@ struct mlx5_dev_spawn_data {
>  			goto error;
>  		}
>  		priv->rx_ns = ns;
> -		ns = mlx5dv_dr_create_ns(ctx,
> +		ns = mlx5dv_dr_create_ns(sh->ctx,
> 
> MLX5DV_DR_NS_DOMAIN_EGRESS_BYPASS);
>  		if (ns == NULL) {
>  			DRV_LOG(ERR, "mlx5dv_dr_create_ns failed"); diff --
> git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index
> efa3a3c..d816d24 100644
> --- a/drivers/net/mlx5/mlx5.h
> +++ b/drivers/net/mlx5/mlx5.h
> @@ -226,7 +226,6 @@ struct mlx5_priv {
>  	struct rte_eth_dev_data *dev_data;  /* Pointer to device data. */
>  	struct mlx5_ibv_shared *sh; /* Shared IB device context. */
>  	uint32_t ibv_port; /* IB device port number. */
> -	struct ibv_context *ctx; /* Verbs context. */
>  	struct ether_addr mac[MLX5_MAX_MAC_ADDRESSES]; /* MAC
> addresses. */
>  	BITFIELD_DECLARE(mac_own, uint64_t,
> MLX5_MAX_MAC_ADDRESSES);
>  	/* Bit-field of MAC addresses owned by the PMD. */ diff --git
> a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c index
> 69f238b..1b2173b 100644
> --- a/drivers/net/mlx5/mlx5_ethdev.c
> +++ b/drivers/net/mlx5/mlx5_ethdev.c
> @@ -1055,7 +1055,7 @@ int mlx5_fw_version_get(struct rte_eth_dev *dev,
> char *fw_ver, size_t fw_size)
>  	}
>  	/* Read all message and acknowledge them. */
>  	for (;;) {
> -		if (mlx5_glue->get_async_event(priv->ctx, &event))
> +		if (mlx5_glue->get_async_event(priv->sh->ctx, &event))
>  			break;
>  		if ((event.event_type == IBV_EVENT_PORT_ACTIVE ||
>  			event.event_type == IBV_EVENT_PORT_ERR) &&
> @@ -1142,12 +1142,13 @@ int mlx5_fw_version_get(struct rte_eth_dev
> *dev, char *fw_ver, size_t fw_size)
> mlx5_dev_interrupt_handler_install(struct rte_eth_dev *dev)  {
>  	struct mlx5_priv *priv = dev->data->dev_private;
> +	struct ibv_context *ctx = priv->sh->ctx;
>  	int ret;
>  	int flags;
> 
> -	assert(priv->ctx->async_fd > 0);
> -	flags = fcntl(priv->ctx->async_fd, F_GETFL);
> -	ret = fcntl(priv->ctx->async_fd, F_SETFL, flags | O_NONBLOCK);
> +	assert(ctx->async_fd > 0);
> +	flags = fcntl(ctx->async_fd, F_GETFL);
> +	ret = fcntl(ctx->async_fd, F_SETFL, flags | O_NONBLOCK);
>  	if (ret) {
>  		DRV_LOG(INFO,
>  			"port %u failed to change file descriptor async event"
> @@ -1158,7 +1159,7 @@ int mlx5_fw_version_get(struct rte_eth_dev *dev,
> char *fw_ver, size_t fw_size)
>  	}
>  	if (dev->data->dev_conf.intr_conf.lsc ||
>  	    dev->data->dev_conf.intr_conf.rmv) {
> -		priv->intr_handle.fd = priv->ctx->async_fd;
> +		priv->intr_handle.fd = ctx->async_fd;
>  		priv->intr_handle.type = RTE_INTR_HANDLE_EXT;
>  		rte_intr_callback_register(&priv->intr_handle,
>  					   mlx5_dev_interrupt_handler, dev);
> @@ -1303,7 +1304,7 @@ int mlx5_fw_version_get(struct rte_eth_dev *dev,
> char *fw_ver, size_t fw_size)
>  	struct ibv_device_attr device_attr;
>  	struct mlx5_priv *priv = dev->data->dev_private;
> 
> -	if (mlx5_glue->query_device(priv->ctx, &device_attr) == EIO)
> +	if (mlx5_glue->query_device(priv->sh->ctx, &device_attr) == EIO)
>  		return 1;
>  	return 0;
>  }
> diff --git a/drivers/net/mlx5/mlx5_flow_dv.c
> b/drivers/net/mlx5/mlx5_flow_dv.c index 44b36ee..b8943da 100644
> --- a/drivers/net/mlx5/mlx5_flow_dv.c
> +++ b/drivers/net/mlx5/mlx5_flow_dv.c
> @@ -840,7 +840,7 @@ struct field_modify_info modify_tcp[] = {
>  	*cache_resource = *resource;
>  	cache_resource->verbs_action =
>  		mlx5_glue->dv_create_flow_action_packet_reformat
> -			(priv->ctx, cache_resource->reformat_type,
> +			(priv->sh->ctx, cache_resource->reformat_type,
>  			 cache_resource->ft_type, ns, cache_resource-
> >flags,
>  			 cache_resource->size,
>  			 (cache_resource->size ? cache_resource->buf :
> NULL)); @@ -1569,7 +1569,8 @@ struct field_modify_info modify_tcp[] = {
>  	*cache_resource = *resource;
>  	cache_resource->verbs_action =
>  		mlx5_glue->dv_create_flow_action_modify_header
> -					(priv->ctx, cache_resource->ft_type,
> +					(priv->sh->ctx,
> +					 cache_resource->ft_type,
>  					 ns, 0,
>  					 cache_resource->actions_num *
>  					 sizeof(cache_resource->actions[0]),
> @@ -1629,7 +1630,7 @@ struct field_modify_info modify_tcp[] = {
>  		ret = -ENOMEM;
>  		goto error_exit;
>  	}
> -	ret = mlx5_devx_cmd_flow_counter_alloc(priv->ctx, dcs);
> +	ret = mlx5_devx_cmd_flow_counter_alloc(priv->sh->ctx, dcs);
>  	if (ret)
>  		goto error_exit;
>  	struct mlx5_flow_counter tmpl = {
> @@ -2982,7 +2983,7 @@ struct field_modify_info modify_tcp[] = {
>  	if (matcher->egress)
>  		dv_attr.flags |= IBV_FLOW_ATTR_FLAGS_EGRESS;
>  	cache_matcher->matcher_object =
> -		mlx5_glue->dv_create_flow_matcher(priv->ctx, &dv_attr,
> +		mlx5_glue->dv_create_flow_matcher(priv->sh->ctx,
> &dv_attr,
>  						  tbl->obj);
>  	if (!cache_matcher->matcher_object) {
>  		rte_free(cache_matcher);
> diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c
> b/drivers/net/mlx5/mlx5_flow_verbs.c
> index 6c4f52f..9548d12 100644
> --- a/drivers/net/mlx5/mlx5_flow_verbs.c
> +++ b/drivers/net/mlx5/mlx5_flow_verbs.c
> @@ -56,10 +56,11 @@
>  {
>  #if defined(HAVE_IBV_DEVICE_COUNTERS_SET_V42)
>  	struct mlx5_priv *priv = dev->data->dev_private;
> +	struct ibv_context ctx = priv->sh->ctx;
>  	struct ibv_counter_set_init_attr init = {
>  			 .counter_set_id = counter->id};
> 
> -	counter->cs = mlx5_glue->create_counter_set(priv->ctx, &init);
> +	counter->cs = mlx5_glue->create_counter_set(ctx, &init);
>  	if (!counter->cs) {
>  		rte_errno = ENOTSUP;
>  		return -ENOTSUP;
> @@ -67,12 +68,13 @@
>  	return 0;
>  #elif defined(HAVE_IBV_DEVICE_COUNTERS_SET_V45)
>  	struct mlx5_priv *priv = dev->data->dev_private;
> +	struct ibv_context *ctx = priv->sh->ctx;
>  	struct ibv_counters_init_attr init = {0};
>  	struct ibv_counter_attach_attr attach;
>  	int ret;
> 
>  	memset(&attach, 0, sizeof(attach));
> -	counter->cs = mlx5_glue->create_counters(priv->ctx, &init);
> +	counter->cs = mlx5_glue->create_counters(ctx, &init);
>  	if (!counter->cs) {
>  		rte_errno = ENOTSUP;
>  		return -ENOTSUP;
> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
> index fd1c3a2..dcb97c2 100644
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> @@ -799,7 +799,7 @@ struct mlx5_rxq_ibv *
>  	}
>  	tmpl->rxq_ctrl = rxq_ctrl;
>  	if (rxq_ctrl->irq) {
> -		tmpl->channel = mlx5_glue->create_comp_channel(priv-
> >ctx);
> +		tmpl->channel = mlx5_glue->create_comp_channel(priv-
> >sh->ctx);
>  		if (!tmpl->channel) {
>  			DRV_LOG(ERR, "port %u: comp channel creation
> failure",
>  				dev->data->port_id);
> @@ -848,7 +848,7 @@ struct mlx5_rxq_ibv *
>  	}
>  #endif
>  	tmpl->cq = mlx5_glue->cq_ex_to_cq
> -		(mlx5_glue->dv_create_cq(priv->ctx, &attr.cq.ibv,
> +		(mlx5_glue->dv_create_cq(priv->sh->ctx, &attr.cq.ibv,
>  					 &attr.cq.mlx5));
>  	if (tmpl->cq == NULL) {
>  		DRV_LOG(ERR, "port %u Rx queue %u CQ creation failure",
> @@ -905,10 +905,10 @@ struct mlx5_rxq_ibv *
>  			.two_byte_shift_en =
> MLX5_MPRQ_TWO_BYTE_SHIFT,
>  		};
>  	}
> -	tmpl->wq = mlx5_glue->dv_create_wq(priv->ctx, &attr.wq.ibv,
> +	tmpl->wq = mlx5_glue->dv_create_wq(priv->sh->ctx, &attr.wq.ibv,
>  					   &attr.wq.mlx5);
>  #else
> -	tmpl->wq = mlx5_glue->create_wq(priv->ctx, &attr.wq.ibv);
> +	tmpl->wq = mlx5_glue->create_wq(priv->sh->ctx, &attr.wq.ibv);
>  #endif
>  	if (tmpl->wq == NULL) {
>  		DRV_LOG(ERR, "port %u Rx queue %u WQ creation failure",
> @@ -1643,7 +1643,7 @@ struct mlx5_ind_table_ibv *
>  	for (j = 0; i != (unsigned int)(1 << wq_n); ++i, ++j)
>  		wq[i] = wq[j];
>  	ind_tbl->ind_table = mlx5_glue->create_rwq_ind_table
> -		(priv->ctx,
> +		(priv->sh->ctx,
>  		 &(struct ibv_rwq_ind_table_init_attr){
>  			.log_ind_tbl_size = wq_n,
>  			.ind_tbl = wq,
> @@ -1817,7 +1817,7 @@ struct mlx5_hrxq *
>  	}
>  #endif
>  	qp = mlx5_glue->dv_create_qp
> -		(priv->ctx,
> +		(priv->sh->ctx,
>  		 &(struct ibv_qp_init_attr_ex){
>  			.qp_type = IBV_QPT_RAW_PACKET,
>  			.comp_mask =
> @@ -1836,7 +1836,7 @@ struct mlx5_hrxq *
>  		 &qp_init_attr);
>  #else
>  	qp = mlx5_glue->create_qp_ex
> -		(priv->ctx,
> +		(priv->sh->ctx,
>  		 &(struct ibv_qp_init_attr_ex){
>  			.qp_type = IBV_QPT_RAW_PACKET,
>  			.comp_mask =
> @@ -1988,20 +1988,21 @@ struct mlx5_rxq_ibv *
> mlx5_rxq_ibv_drop_new(struct rte_eth_dev *dev)  {
>  	struct mlx5_priv *priv = dev->data->dev_private;
> +	struct ibv_context *ctx = priv->sh->ctx;
>  	struct ibv_cq *cq;
>  	struct ibv_wq *wq = NULL;
>  	struct mlx5_rxq_ibv *rxq;
> 
>  	if (priv->drop_queue.rxq)
>  		return priv->drop_queue.rxq;
> -	cq = mlx5_glue->create_cq(priv->ctx, 1, NULL, NULL, 0);
> +	cq = mlx5_glue->create_cq(ctx, 1, NULL, NULL, 0);
>  	if (!cq) {
>  		DEBUG("port %u cannot allocate CQ for drop queue",
>  		      dev->data->port_id);
>  		rte_errno = errno;
>  		goto error;
>  	}
> -	wq = mlx5_glue->create_wq(priv->ctx,
> +	wq = mlx5_glue->create_wq(ctx,
>  		 &(struct ibv_wq_init_attr){
>  			.wq_type = IBV_WQT_RQ,
>  			.max_wr = 1,
> @@ -2078,7 +2079,7 @@ struct mlx5_ind_table_ibv *
>  	if (!rxq)
>  		return NULL;
>  	tmpl.ind_table = mlx5_glue->create_rwq_ind_table
> -		(priv->ctx,
> +		(priv->sh->ctx,
>  		 &(struct ibv_rwq_ind_table_init_attr){
>  			.log_ind_tbl_size = 0,
>  			.ind_tbl = &rxq->wq,
> @@ -2145,7 +2146,7 @@ struct mlx5_hrxq *
>  	ind_tbl = mlx5_ind_table_ibv_drop_new(dev);
>  	if (!ind_tbl)
>  		return NULL;
> -	qp = mlx5_glue->create_qp_ex(priv->ctx,
> +	qp = mlx5_glue->create_qp_ex(priv->sh->ctx,
>  		 &(struct ibv_qp_init_attr_ex){
>  			.qp_type = IBV_QPT_RAW_PACKET,
>  			.comp_mask =
> diff --git a/drivers/net/mlx5/mlx5_socket.c
> b/drivers/net/mlx5/mlx5_socket.c index 41cac3c..8fa6430 100644
> --- a/drivers/net/mlx5/mlx5_socket.c
> +++ b/drivers/net/mlx5/mlx5_socket.c
> @@ -185,9 +185,9 @@
>  	assert(cmsg != NULL);
>  	cmsg->cmsg_level = SOL_SOCKET;
>  	cmsg->cmsg_type = SCM_RIGHTS;
> -	cmsg->cmsg_len = CMSG_LEN(sizeof(priv->ctx->cmd_fd));
> +	cmsg->cmsg_len = CMSG_LEN(sizeof(priv->sh->ctx->cmd_fd));
>  	fd = (int *)CMSG_DATA(cmsg);
> -	*fd = priv->ctx->cmd_fd;
> +	*fd = priv->sh->ctx->cmd_fd;
>  	ret = sendmsg(conn_sock, &msg, 0);
>  	if (ret < 0)
>  		DRV_LOG(WARNING, "port %u cannot send response", diff -
> -git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c
> index 2137bdc..d13a1a1 100644
> --- a/drivers/net/mlx5/mlx5_trigger.c
> +++ b/drivers/net/mlx5/mlx5_trigger.c
> @@ -58,7 +58,7 @@
>  			goto error;
>  		}
>  	}
> -	ret = mlx5_tx_uar_remap(dev, priv->ctx->cmd_fd);
> +	ret = mlx5_tx_uar_remap(dev, priv->sh->ctx->cmd_fd);
>  	if (ret) {
>  		/* Adjust index for rollback. */
>  		i = priv->txqs_n - 1;
> diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c
> index 10a3040..25305b6 100644
> --- a/drivers/net/mlx5/mlx5_txq.c
> +++ b/drivers/net/mlx5/mlx5_txq.c
> @@ -392,7 +392,7 @@ struct mlx5_txq_ibv *
>  		((desc / MLX5_TX_COMP_THRESH) - 1) : 1;
>  	if (is_empw_burst_func(tx_pkt_burst))
>  		cqe_n += MLX5_TX_COMP_THRESH_INLINE_DIV;
> -	tmpl.cq = mlx5_glue->create_cq(priv->ctx, cqe_n, NULL, NULL, 0);
> +	tmpl.cq = mlx5_glue->create_cq(priv->sh->ctx, cqe_n, NULL, NULL,
> 0);
>  	if (tmpl.cq == NULL) {
>  		DRV_LOG(ERR, "port %u Tx queue %u CQ creation failure",
>  			dev->data->port_id, idx);
> @@ -435,7 +435,7 @@ struct mlx5_txq_ibv *
>  		attr.init.max_tso_header = txq_ctrl->max_tso_header;
>  		attr.init.comp_mask |=
> IBV_QP_INIT_ATTR_MAX_TSO_HEADER;
>  	}
> -	tmpl.qp = mlx5_glue->create_qp_ex(priv->ctx, &attr.init);
> +	tmpl.qp = mlx5_glue->create_qp_ex(priv->sh->ctx, &attr.init);
>  	if (tmpl.qp == NULL) {
>  		DRV_LOG(ERR, "port %u Tx queue %u QP creation failure",
>  			dev->data->port_id, idx);
> --
> 1.8.3.1

  reply	other threads:[~2019-03-21 12:15 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-28 18:02 [RFC 00/10] net/mlx5: add support for multiport IB devices Viacheslav Ovsiienko
2019-02-28 18:02 ` [RFC 01/10] net/mlx5: add multiport IB device port structure Viacheslav Ovsiienko
2019-02-28 18:02 ` [RFC 02/10] net/mlx5: modify get ifindex routine for multiport IB Viacheslav Ovsiienko
2019-02-28 18:02 ` [RFC 03/10] net/mlx5: add getting IB ports number " Viacheslav Ovsiienko
2019-02-28 18:02 ` [RFC 04/10] net/mlx5: add multiport IB device support to probing Viacheslav Ovsiienko
2019-02-28 18:03 ` [RFC 05/10] net/mlx5: add IB shared context alloc/free functions Viacheslav Ovsiienko
2019-02-28 18:03 ` [RFC 06/10] net/mlx5: switch to the names in the shared IB context Viacheslav Ovsiienko
2019-02-28 18:03 ` [RFC 07/10] net/mlx5: switch to the shared Protection Domain Viacheslav Ovsiienko
2019-02-28 18:03 ` [RFC 08/10] net/mlx5: switch to the shared context IB attributes Viacheslav Ovsiienko
2019-02-28 18:03 ` [RFC 09/10] net/mlx5: switch to the shared IB device context Viacheslav Ovsiienko
2019-02-28 18:03 ` [RFC 10/10] net/mlx5: provide IB port for the object being created Viacheslav Ovsiienko
2019-03-21  8:11 ` [PATCH 00/14] net/mlx5: add support for multiport IB devices Viacheslav Ovsiienko
2019-03-21  8:11   ` [PATCH 01/14] net/mlx5: add representor recognition on kernels 5.x Viacheslav Ovsiienko
2019-03-21 12:13     ` Shahaf Shuler
2019-03-21 15:08       ` Stephen Hemminger
2019-03-21 15:31         ` Slava Ovsiienko
2019-03-21 19:08           ` Stephen Hemminger
2019-03-22  8:15             ` Slava Ovsiienko
2019-03-21  8:11   ` [PATCH 02/14] net/mlx5: introduce multiport IB device shared structure Viacheslav Ovsiienko
2019-03-21  8:11   ` [PATCH 03/14] net/mlx5: modify get ifindex routine for multiport IB Viacheslav Ovsiienko
2019-03-21 12:14     ` Shahaf Shuler
2019-03-21 12:58       ` Slava Ovsiienko
2019-03-21  8:11   ` [PATCH 04/14] net/mlx5: add getting IB ports number " Viacheslav Ovsiienko
2019-03-21 12:14     ` Shahaf Shuler
2019-03-21  8:11   ` [PATCH 05/14] net/mlx5: add multiport IB device support to probing Viacheslav Ovsiienko
2019-03-21 12:14     ` Shahaf Shuler
2019-03-21 12:54       ` Slava Ovsiienko
2019-03-21 12:57         ` Slava Ovsiienko
2019-03-24  9:00           ` Shahaf Shuler
2019-03-21  8:11   ` [PATCH 06/14] net/mlx5: add IB shared context alloc/free functions Viacheslav Ovsiienko
2019-03-21 12:14     ` Shahaf Shuler
2019-03-21  8:11   ` [PATCH 07/14] net/mlx5: switch to the names in the shared IB context Viacheslav Ovsiienko
2019-03-21 12:14     ` Shahaf Shuler
2019-03-21  8:11   ` [PATCH 08/14] net/mlx5: switch to the shared Protection Domain Viacheslav Ovsiienko
2019-03-21 12:14     ` Shahaf Shuler
2019-03-21  8:11   ` [PATCH 09/14] net/mlx5: switch to the shared context IB attributes Viacheslav Ovsiienko
2019-03-21 12:14     ` Shahaf Shuler
2019-03-21  8:11   ` [PATCH 10/14] net/mlx5: switch to the shared IB device context Viacheslav Ovsiienko
2019-03-21 12:14     ` Shahaf Shuler [this message]
2019-03-21  8:11   ` [PATCH 11/14] net/mlx5: provide IB port for the object being created Viacheslav Ovsiienko
2019-03-21 12:15     ` Shahaf Shuler
2019-03-21  8:11   ` [PATCH 12/14] net/mlx5: update install/uninstall int handler routines Viacheslav Ovsiienko
2019-03-21 12:15     ` Shahaf Shuler
2019-03-21 14:01       ` Slava Ovsiienko
2019-03-24  9:07         ` Shahaf Shuler
2019-03-21  8:11   ` [PATCH 13/14] net/mlx5: update event handler for multiport IB devices Viacheslav Ovsiienko
2019-03-21 12:15     ` Shahaf Shuler
2019-03-21 14:08       ` Slava Ovsiienko
2019-03-21  8:11   ` [PATCH 14/14] net/mlx5: add source vport match to the ingress rules Viacheslav Ovsiienko
2019-03-21 12:15     ` Shahaf Shuler
2019-03-21 14:11       ` Slava Ovsiienko
2019-03-24  9:13         ` Shahaf Shuler
2019-03-25  7:44           ` Slava Ovsiienko
2019-03-21 12:13   ` [PATCH 00/14] net/mlx5: add support for multiport IB devices Shahaf Shuler
2019-03-21 12:58     ` Slava Ovsiienko
2019-03-25 17:03   ` [PATCH v2 " Viacheslav Ovsiienko
2019-03-25 17:03     ` [PATCH v2 01/13] net/mlx5: add representor recognition on kernels 5.x Viacheslav Ovsiienko
2019-03-25 18:06       ` Stephen Hemminger
2019-03-25 18:07       ` Stephen Hemminger
2019-03-26  7:33         ` Slava Ovsiienko
2019-03-26 12:20       ` Shahaf Shuler
2019-03-25 17:03     ` [PATCH v2 02/13] net/mlx5: modify get ifindex routine for multiport IB Viacheslav Ovsiienko
2019-03-26 11:47       ` Shahaf Shuler
2019-03-25 17:03     ` [PATCH v2 03/13] net/mlx5: add getting IB ports number " Viacheslav Ovsiienko
2019-03-25 17:03     ` [PATCH v2 04/13] net/mlx5: add multiport IB device support to probing Viacheslav Ovsiienko
2019-03-26 12:02       ` Shahaf Shuler
2019-03-25 17:03     ` [PATCH v2 05/13] net/mlx5: add IB shared context alloc/free functions Viacheslav Ovsiienko
2019-03-26 12:10       ` Shahaf Shuler
2019-03-25 17:03     ` [PATCH v2 06/13] net/mlx5: switch to the names in the shared IB context Viacheslav Ovsiienko
2019-03-25 17:03     ` [PATCH v2 07/13] net/mlx5: switch to the shared Protection Domain Viacheslav Ovsiienko
2019-03-25 17:03     ` [PATCH v2 08/13] net/mlx5: switch to the shared context IB attributes Viacheslav Ovsiienko
2019-03-25 17:03     ` [PATCH v2 09/13] net/mlx5: switch to the shared IB device context Viacheslav Ovsiienko
2019-03-25 17:03     ` [PATCH v2 10/13] net/mlx5: provide IB port for the object being created Viacheslav Ovsiienko
2019-03-25 17:03     ` [PATCH v2 11/13] net/mlx5: update install/uninstall int handler routines Viacheslav Ovsiienko
2019-03-26 12:14       ` Shahaf Shuler
2019-03-25 17:03     ` [PATCH v2 12/13] net/mlx5: update event handler for multiport IB devices Viacheslav Ovsiienko
2019-03-26 12:16       ` Shahaf Shuler
2019-03-25 17:03     ` [PATCH v2 13/13] net/mlx5: add source vport match to the ingress rules Viacheslav Ovsiienko
2019-03-26 12:21       ` Shahaf Shuler
2019-03-26 15:35     ` [PATCH v3 00/14] net/mlx5: add support for multiport IB devices Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 01/13] net/mlx5: add representor recognition on kernels 5.x Viacheslav Ovsiienko
2019-03-26 19:37         ` Shahaf Shuler
2019-03-26 15:35       ` [PATCH v3 02/13] net/mlx5: modify get ifindex routine for multiport IB Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 03/13] net/mlx5: add getting IB ports number " Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 04/13] net/mlx5: add multiport IB device support to probing Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 05/13] net/mlx5: add IB shared context alloc/free functions Viacheslav Ovsiienko
2019-03-26 19:35         ` Shahaf Shuler
2019-03-26 15:35       ` [PATCH v3 06/13] net/mlx5: switch to the names in the shared IB context Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 07/13] net/mlx5: switch to the shared Protection Domain Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 08/13] net/mlx5: switch to the shared context IB attributes Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 09/13] net/mlx5: switch to the shared IB device context Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 10/13] net/mlx5: provide IB port for the object being created Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 11/13] net/mlx5: update install/uninstall int handler routines Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 12/13] net/mlx5: update event handler for multiport IB devices Viacheslav Ovsiienko
2019-03-26 15:35       ` [PATCH v3 13/13] net/mlx5: add source vport match to the ingress rules Viacheslav Ovsiienko
2019-03-26 19:38         ` Shahaf Shuler
2019-03-27  6:00       ` [PATCH v3 00/14] net/mlx5: add support for multiport IB devices Shahaf Shuler
2019-03-27  7:31         ` Slava Ovsiienko
2019-03-27 13:15       ` [PATCH v4 " Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 01/13] net/mlx5: add representor recognition on kernels 5.x Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 02/13] net/mlx5: modify get ifindex routine for multiport IB Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 03/13] net/mlx5: add getting IB ports number " Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 04/13] net/mlx5: add multiport IB device support to probing Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 05/13] net/mlx5: add IB shared context alloc/free functions Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 06/13] net/mlx5: switch to the names in the shared IB context Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 07/13] net/mlx5: switch to the shared Protection Domain Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 08/13] net/mlx5: switch to the shared context IB attributes Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 09/13] net/mlx5: switch to the shared IB device context Viacheslav Ovsiienko
2019-04-02  4:49           ` Shahaf Shuler
2019-03-27 13:15         ` [PATCH v4 10/13] net/mlx5: provide IB port for the object being created Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 11/13] net/mlx5: update install/uninstall int handler routines Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 12/13] net/mlx5: update event handler for multiport IB devices Viacheslav Ovsiienko
2019-03-27 13:15         ` [PATCH v4 13/13] net/mlx5: add source vport match to the ingress rules Viacheslav Ovsiienko
2019-03-28  9:21         ` [PATCH v4 00/14] net/mlx5: add support for multiport IB devices Shahaf Shuler

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=AM0PR0502MB37953DE2E1087B2068C0B612C3420@AM0PR0502MB3795.eurprd05.prod.outlook.com \
    --to=shahafs@mellanox.com \
    --cc=dev@dpdk.org \
    --cc=viacheslavo@mellanox.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.