[v2,2/2] drivers/net/mlx5: fix representor interrupts handler

Message ID 20201117184940.19218-2-getelson@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series [v2,1/2] examples/l3fwd-power: fix check_ptype query |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-testing warning Testing issues
ci/iol-intel-Functional fail Functional Testing issues
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed

Commit Message

Gregory Etelson Nov. 17, 2020, 6:49 p.m. UTC
  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(+)
  

Comments

Thomas Monjalon Nov. 22, 2020, 5:05 p.m. UTC | #1
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
  

Patch

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)