net/bnxt: fix Rx queue pool calculation

Message ID 20191118203150.66895-1-ajit.khaparde@broadcom.com (mailing list archive)
State Accepted, archived
Delegated to: Ajit Khaparde
Headers
Series net/bnxt: fix Rx queue pool calculation |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-compilation success Compile Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Ajit Khaparde Nov. 18, 2019, 8:31 p.m. UTC
  When the number of Rx queues requested by the application is less than
the number of pools calculated, we end up calling HWRM_VNIC_ALLOC with
incorrect parameters. This causes the firmware to return an error.
Fix the Rx queue pool calculation.

Fixes: 10bb6ddc2984 ("net/bnxt: fix flow creation with non-consecutive group ids")

Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
 drivers/net/bnxt/bnxt_rxq.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Ajit Khaparde Nov. 18, 2019, 8:41 p.m. UTC | #1
On Mon, Nov 18, 2019 at 12:32 PM Ajit Khaparde <ajit.khaparde@broadcom.com>
wrote:

> When the number of Rx queues requested by the application is less than
> the number of pools calculated, we end up calling HWRM_VNIC_ALLOC with
> incorrect parameters. This causes the firmware to return an error.
> Fix the Rx queue pool calculation.
>
> Fixes: 10bb6ddc2984 ("net/bnxt: fix flow creation with non-consecutive
> group ids")
>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
>
Patch applied to dpdk-next-net-brcm


> ---
>  drivers/net/bnxt/bnxt_rxq.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
> index 94f105d34..457ebede0 100644
> --- a/drivers/net/bnxt/bnxt_rxq.c
> +++ b/drivers/net/bnxt/bnxt_rxq.c
> @@ -104,6 +104,7 @@ int bnxt_mq_rx_configure(struct bnxt *bp)
>                 pools = bp->rx_cosq_cnt ? bp->rx_cosq_cnt : pools;
>         }
>
> +       pools = RTE_MIN(pools, bp->rx_cp_nr_rings);
>         nb_q_per_grp = bp->rx_cp_nr_rings / pools;
>         bp->rx_num_qs_per_vnic = nb_q_per_grp;
>         PMD_DRV_LOG(DEBUG, "pools = %u nb_q_per_grp = %u\n",
> --
> 2.21.0 (Apple Git-122.2)
>
>
  
Ferruh Yigit Nov. 19, 2019, 1:03 p.m. UTC | #2
On 11/18/2019 8:41 PM, Ajit Khaparde wrote:
> 
> 
> On Mon, Nov 18, 2019 at 12:32 PM Ajit Khaparde <ajit.khaparde@broadcom.com
> <mailto:ajit.khaparde@broadcom.com>> wrote:
> 
>     When the number of Rx queues requested by the application is less than
>     the number of pools calculated, we end up calling HWRM_VNIC_ALLOC with
>     incorrect parameters. This causes the firmware to return an error.
>     Fix the Rx queue pool calculation.
> 
>     Fixes: 10bb6ddc2984 ("net/bnxt: fix flow creation with non-consecutive group
>     ids")
> 
>     Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com
>     <mailto:ajit.khaparde@broadcom.com>>
>     Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com
>     <mailto:somnath.kotur@broadcom.com>>
> 
> Patch applied to dpdk-next-net-brcm

Squashed into relevant commit in next-net, thanks.
  

Patch

diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index 94f105d34..457ebede0 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -104,6 +104,7 @@  int bnxt_mq_rx_configure(struct bnxt *bp)
 		pools = bp->rx_cosq_cnt ? bp->rx_cosq_cnt : pools;
 	}
 
+	pools = RTE_MIN(pools, bp->rx_cp_nr_rings);
 	nb_q_per_grp = bp->rx_cp_nr_rings / pools;
 	bp->rx_num_qs_per_vnic = nb_q_per_grp;
 	PMD_DRV_LOG(DEBUG, "pools = %u nb_q_per_grp = %u\n",