DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 1/2] drivers/net/mlx5: fix representor interrupts handler
@ 2020-10-28  9:59 Gregory Etelson
  2020-10-28  9:59 ` [dpdk-dev] [PATCH 2/2] examples/l3fwd-power: fix check_ptype query Gregory Etelson
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Gregory Etelson @ 2020-10-28  9:59 UTC (permalink / raw)
  To: dev
  Cc: getelson, matan, rasland, Viacheslav Ovsiienko, Shahaf Shuler,
	Adrien Mazarguil, Xueming Li

Representor is a port in DPDK that is connected to a VF in such a way
that assuming there are no offload flows, each packet that is sent
from the VF will be received by the corresponding representor. While
each packet that is sent to a representor will be received by the VF.
This is very useful in case of SRIOV mode, where the first packet that
is sent by the VF will be received by the DPDK application which will
decide if this flow should be offloaded to the E-Switch.

Representor shares interrupts handler with host PF over the PCI
address. Therefore after PF completes it's interrupts handler
initialization no additional actions required for representor.

Fixes: 26c08b979d26 ("net/mlx5: add port representor awareness")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxq.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index 8d05315e61..df8542f7db 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -902,6 +902,11 @@ mlx5_rx_intr_vec_enable(struct rte_eth_dev *dev)
 	unsigned int count = 0;
 	struct rte_intr_handle *intr_handle = dev->intr_handle;
 
+	/**
+	 * representor shares dev->intr_handle with PF
+	 */
+	if (priv->representor)
+		return 0;
 	if (!dev->data->dev_conf.intr_conf.rxq)
 		return 0;
 	mlx5_rx_intr_vec_disable(dev);
@@ -982,6 +987,11 @@ mlx5_rx_intr_vec_disable(struct rte_eth_dev *dev)
 	unsigned int rxqs_n = priv->rxqs_n;
 	unsigned int n = RTE_MIN(rxqs_n, (uint32_t)RTE_MAX_RXTX_INTR_VEC_ID);
 
+	/**
+	 * representor shares dev->intr_handle with PF
+	 */
+	if (priv->representor)
+		return;
 	if (!dev->data->dev_conf.intr_conf.rxq)
 		return;
 	if (!intr_handle->intr_vec)
-- 
2.28.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [dpdk-dev] [PATCH 2/2] examples/l3fwd-power: fix check_ptype query
  2020-10-28  9:59 [dpdk-dev] [PATCH 1/2] drivers/net/mlx5: fix representor interrupts handler Gregory Etelson
@ 2020-10-28  9:59 ` Gregory Etelson
  2020-11-04 18:25 ` [dpdk-dev] [PATCH 1/2] drivers/net/mlx5: fix representor interrupts handler Thomas Monjalon
  2020-11-17 18:49 ` [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query Gregory Etelson
  2 siblings, 0 replies; 7+ messages in thread
From: Gregory Etelson @ 2020-10-28  9:59 UTC (permalink / raw)
  To: dev; +Cc: getelson, matan, rasland, David Hunt, Jianfeng Tan

l3fwd-power uses `--parse-ptype' parameter to query egress packets
type.  Before that feature is eanbled l3fwd-power verifies PMD ability
to advertise supporrtred packet types with
rte_eth_dev_get_supported_ptypes().

The patch updates code for PMDs that register supported types after
dev_start.

Fixes: 82bea4661626 ("examples/l3fwd-power: add --parse-ptype option")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
---
 examples/l3fwd-power/main.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index a48d75f68f..a18a25f316 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -2702,9 +2702,7 @@ main(int argc, char **argv)
 				if (add_cb_parse_ptype(portid, queueid) < 0)
 					rte_exit(EXIT_FAILURE,
 						 "Fail to add ptype cb\n");
-			} else if (!check_ptype(portid))
-				rte_exit(EXIT_FAILURE,
-					 "PMD can not provide needed ptypes\n");
+			}
 		}
 	}
 
@@ -2735,6 +2733,11 @@ main(int argc, char **argv)
 		}
 		/* initialize spinlock for each port */
 		rte_spinlock_init(&(locks[portid]));
+
+		if (!parse_ptype)
+			if (!check_ptype(portid))
+				rte_exit(EXIT_FAILURE,
+					"PMD can not provide needed ptypes\n");
 	}
 
 	check_all_ports_link_status(enabled_port_mask);
-- 
2.28.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] drivers/net/mlx5: fix representor interrupts handler
  2020-10-28  9:59 [dpdk-dev] [PATCH 1/2] drivers/net/mlx5: fix representor interrupts handler Gregory Etelson
  2020-10-28  9:59 ` [dpdk-dev] [PATCH 2/2] examples/l3fwd-power: fix check_ptype query Gregory Etelson
@ 2020-11-04 18:25 ` Thomas Monjalon
  2020-11-17 18:49 ` [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query Gregory Etelson
  2 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2020-11-04 18:25 UTC (permalink / raw)
  To: matan, Viacheslav Ovsiienko, Gregory Etelson
  Cc: dev, rasland, Shahaf Shuler, Xueming Li

28/10/2020 10:59, Gregory Etelson:
> Representor is a port in DPDK that is connected to a VF in such a way
> that assuming there are no offload flows, each packet that is sent
> from the VF will be received by the corresponding representor. While
> each packet that is sent to a representor will be received by the VF.
> This is very useful in case of SRIOV mode, where the first packet that
> is sent by the VF will be received by the DPDK application which will
> decide if this flow should be offloaded to the E-Switch.
> 
> Representor shares interrupts handler with host PF over the PCI
> address. Therefore after PF completes it's interrupts handler

it's -> its

> initialization no additional actions required for representor.

comma missing after "initialization"

> Fixes: 26c08b979d26 ("net/mlx5: add port representor awareness")
> 
> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> ---
> --- a/drivers/net/mlx5/mlx5_rxq.c
> +++ b/drivers/net/mlx5/mlx5_rxq.c
> +	/**
> +	 * representor shares dev->intr_handle with PF
> +	 */

The style in mlx5 is to start comments with a capital letter
and to end with a period.
Moreover, it does not have to be a doxygen-style comment,
and can be on one line.

Matan, Slava, please check such details in reviews.



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query
  2020-10-28  9:59 [dpdk-dev] [PATCH 1/2] drivers/net/mlx5: fix representor interrupts handler Gregory Etelson
  2020-10-28  9:59 ` [dpdk-dev] [PATCH 2/2] examples/l3fwd-power: fix check_ptype query Gregory Etelson
  2020-11-04 18:25 ` [dpdk-dev] [PATCH 1/2] drivers/net/mlx5: fix representor interrupts handler Thomas Monjalon
@ 2020-11-17 18:49 ` Gregory Etelson
  2020-11-17 18:49   ` [dpdk-dev] [PATCH v2 2/2] drivers/net/mlx5: fix representor interrupts handler Gregory Etelson
  2020-11-22 17:03   ` [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query Thomas Monjalon
  2 siblings, 2 replies; 7+ messages in thread
From: Gregory Etelson @ 2020-11-17 18:49 UTC (permalink / raw)
  To: dev, getelson; +Cc: matan, rasland, thomas, David Hunt, Jianfeng Tan

l3fwd-power uses `--parse-ptype' parameter to query egress packets
type.  Before that feature is eanbled l3fwd-power verifies PMD ability
to advertise supporrtred packet types with
rte_eth_dev_get_supported_ptypes().

The patch updates code for PMDs that register supported types after
dev_start.

Fixes: 82bea4661626 ("examples/l3fwd-power: add --parse-ptype option")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
---
 examples/l3fwd-power/main.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index 2874285c4e..995a3b6ad7 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -2707,9 +2707,7 @@ main(int argc, char **argv)
 				if (add_cb_parse_ptype(portid, queueid) < 0)
 					rte_exit(EXIT_FAILURE,
 						 "Fail to add ptype cb\n");
-			} else if (!check_ptype(portid))
-				rte_exit(EXIT_FAILURE,
-					 "PMD can not provide needed ptypes\n");
+			}
 		}
 	}
 
@@ -2740,6 +2738,11 @@ main(int argc, char **argv)
 		}
 		/* initialize spinlock for each port */
 		rte_spinlock_init(&(locks[portid]));
+
+		if (!parse_ptype)
+			if (!check_ptype(portid))
+				rte_exit(EXIT_FAILURE,
+					"PMD can not provide needed ptypes\n");
 	}
 
 	check_all_ports_link_status(enabled_port_mask);
-- 
2.29.2


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [dpdk-dev] [PATCH v2 2/2] drivers/net/mlx5: fix representor interrupts handler
  2020-11-17 18:49 ` [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query Gregory Etelson
@ 2020-11-17 18:49   ` Gregory Etelson
  2020-11-22 17:05     ` Thomas Monjalon
  2020-11-22 17:03   ` [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query Thomas Monjalon
  1 sibling, 1 reply; 7+ messages in thread
From: Gregory Etelson @ 2020-11-17 18:49 UTC (permalink / raw)
  To: dev, getelson
  Cc: matan, rasland, thomas, Viacheslav Ovsiienko, Shahaf Shuler,
	Adrien Mazarguil, Xueming Li

Representor is a port in DPDK that is connected to a VF in such a way
that assuming there are no offload flows, each packet that is sent
from the VF will be received by the corresponding representor. While
each packet that is sent to a representor will be received by the VF.
This is very useful in case of SRIOV mode, where the first packet that
is sent by the VF will be received by the DPDK application which will
decide if this flow should be offloaded to the E-Switch.

Representor shares interrupts handler with host PF over the PCI
address. Therefore, after PF completes its interrupts handler
initialization, no additional actions required for representor.

Fixes: 26c08b979d26 ("net/mlx5: add port representor awareness")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 drivers/net/mlx5/mlx5_rxq.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
index 0693c924d0..1e2fe706ad 100644
--- a/drivers/net/mlx5/mlx5_rxq.c
+++ b/drivers/net/mlx5/mlx5_rxq.c
@@ -902,6 +902,9 @@ mlx5_rx_intr_vec_enable(struct rte_eth_dev *dev)
 	unsigned int count = 0;
 	struct rte_intr_handle *intr_handle = dev->intr_handle;
 
+	/* Representor shares dev->intr_handle with PF. */
+	if (priv->representor)
+		return 0;
 	if (!dev->data->dev_conf.intr_conf.rxq)
 		return 0;
 	mlx5_rx_intr_vec_disable(dev);
@@ -982,6 +985,9 @@ mlx5_rx_intr_vec_disable(struct rte_eth_dev *dev)
 	unsigned int rxqs_n = priv->rxqs_n;
 	unsigned int n = RTE_MIN(rxqs_n, (uint32_t)RTE_MAX_RXTX_INTR_VEC_ID);
 
+	/* Representor shares dev->intr_handle with PF. */
+	if (priv->representor)
+		return;
 	if (!dev->data->dev_conf.intr_conf.rxq)
 		return;
 	if (!intr_handle->intr_vec)
-- 
2.29.2


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query
  2020-11-17 18:49 ` [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query Gregory Etelson
  2020-11-17 18:49   ` [dpdk-dev] [PATCH v2 2/2] drivers/net/mlx5: fix representor interrupts handler Gregory Etelson
@ 2020-11-22 17:03   ` Thomas Monjalon
  1 sibling, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2020-11-22 17:03 UTC (permalink / raw)
  To: David Hunt, Gregory Etelson; +Cc: dev, matan, rasland, david.marchand, asafp

I was expecting a review from David Hunt.
Let's proceed.

17/11/2020 19:49, Gregory Etelson:
> l3fwd-power uses `--parse-ptype' parameter to query egress packets
> type.  Before that feature is eanbled l3fwd-power verifies PMD ability

typo: eanbled -> enabled

> to advertise supporrtred packet types with

double typo: supporrtred -> supported

> rte_eth_dev_get_supported_ptypes().

Adding the note from ethdev API description:
"
Better to invoke this API after the device is already started or rx burst
function is decided, to obtain correct supported ptypes.
"

> The patch updates code for PMDs that register supported types after
> dev_start.
> 
> Fixes: 82bea4661626 ("examples/l3fwd-power: add --parse-ptype option")
> 
> Signed-off-by: Gregory Etelson <getelson@nvidia.com>

Applied, thanks



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [dpdk-dev] [PATCH v2 2/2] drivers/net/mlx5: fix representor interrupts handler
  2020-11-17 18:49   ` [dpdk-dev] [PATCH v2 2/2] drivers/net/mlx5: fix representor interrupts handler Gregory Etelson
@ 2020-11-22 17:05     ` Thomas Monjalon
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2020-11-22 17:05 UTC (permalink / raw)
  To: Gregory Etelson
  Cc: dev, matan, rasland, Viacheslav Ovsiienko, Adrien Mazarguil,
	Xueming Li, asafp

17/11/2020 19:49, Gregory Etelson:
> Representor is a port in DPDK that is connected to a VF in such a way
> that assuming there are no offload flows, each packet that is sent
> from the VF will be received by the corresponding representor. While
> each packet that is sent to a representor will be received by the VF.
> This is very useful in case of SRIOV mode, where the first packet that
> is sent by the VF will be received by the DPDK application which will
> decide if this flow should be offloaded to the E-Switch.
> 
> Representor shares interrupts handler with host PF over the PCI
> address. Therefore, after PF completes its interrupts handler
> initialization, no additional actions required for representor.
> 
> Fixes: 26c08b979d26 ("net/mlx5: add port representor awareness")
> 
> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
> ---
>  drivers/net/mlx5/mlx5_rxq.c | 6 ++++++

I don't understand why this patch was in the same series as
the l3fwd-power fix.
So the whole series is delegated to me and I merge both.

Applied



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-11-22 17:05 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-28  9:59 [dpdk-dev] [PATCH 1/2] drivers/net/mlx5: fix representor interrupts handler Gregory Etelson
2020-10-28  9:59 ` [dpdk-dev] [PATCH 2/2] examples/l3fwd-power: fix check_ptype query Gregory Etelson
2020-11-04 18:25 ` [dpdk-dev] [PATCH 1/2] drivers/net/mlx5: fix representor interrupts handler Thomas Monjalon
2020-11-17 18:49 ` [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query Gregory Etelson
2020-11-17 18:49   ` [dpdk-dev] [PATCH v2 2/2] drivers/net/mlx5: fix representor interrupts handler Gregory Etelson
2020-11-22 17:05     ` Thomas Monjalon
2020-11-22 17:03   ` [dpdk-dev] [PATCH v2 1/2] examples/l3fwd-power: fix check_ptype query Thomas Monjalon

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git