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
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
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.
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
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
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
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