[dpdk-dev] [PATCH] net/octeontx2: fix unnecessary error interrupts

Jerin Jacob jerinjacobk at gmail.com
Tue Apr 14 17:31:11 CEST 2020


On Mon, Apr 13, 2020 at 7:15 PM Nithin Dabilpuram <nithind1988 at gmail.com> wrote:
>
> From: Nithin Dabilpuram <ndabilpuram at marvell.com>
>
> Disable CQ_DISABLED error interrupt in NIX_LF_ERR_INT
> to fix spurious interrupts in event dev mode. Also skip
> configuring RSS when RQ count is '0' because
> RSS table initialization is done incorrectly due to
> divide-by-zero error and it is leading to RQ_OOR error
> in NIX_LF_ERR_INT.
>
> Fixes: 83ce2880e22e ("net/octeontx2: support RSS")
> Cc: vattunuru at marvell.com
> Cc: stable at dpdk.org
>
> Signed-off-by: Nithin Dabilpuram <ndabilpuram at marvell.com>

Acked-by: Jerin Jacob <jerinj at marvell.com>
Applied to dpdk-next-net-mrvl/master. Thanks


> ---
>  drivers/net/octeontx2/otx2_ethdev_irq.c | 7 +++++--
>  drivers/net/octeontx2/otx2_rss.c        | 2 +-
>  2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/octeontx2/otx2_ethdev_irq.c b/drivers/net/octeontx2/otx2_ethdev_irq.c
> index 96b848a..b121488 100644
> --- a/drivers/net/octeontx2/otx2_ethdev_irq.c
> +++ b/drivers/net/octeontx2/otx2_ethdev_irq.c
> @@ -472,9 +472,12 @@ otx2_nix_err_intr_enb_dis(struct rte_eth_dev *eth_dev, bool enb)
>  {
>         struct otx2_eth_dev *dev = otx2_eth_pmd_priv(eth_dev);
>
> -       /* Enable all nix lf error interrupts except for RQ_DISABLED */
> +       /* Enable all nix lf error interrupts except
> +        * RQ_DISABLED and CQ_DISABLED.
> +        */
>         if (enb)
> -               otx2_write64(~BIT_ULL(11), dev->base + NIX_LF_ERR_INT_ENA_W1S);
> +               otx2_write64(~(BIT_ULL(11) | BIT_ULL(24)),
> +                            dev->base + NIX_LF_ERR_INT_ENA_W1S);
>         else
>                 otx2_write64(~0ull, dev->base + NIX_LF_ERR_INT_ENA_W1C);
>  }
> diff --git a/drivers/net/octeontx2/otx2_rss.c b/drivers/net/octeontx2/otx2_rss.c
> index a29441e..5e3f866 100644
> --- a/drivers/net/octeontx2/otx2_rss.c
> +++ b/drivers/net/octeontx2/otx2_rss.c
> @@ -358,7 +358,7 @@ otx2_nix_rss_config(struct rte_eth_dev *eth_dev)
>         int rc;
>
>         /* Skip further configuration if selected mode is not RSS */
> -       if (eth_dev->data->dev_conf.rxmode.mq_mode != ETH_MQ_RX_RSS)
> +       if (eth_dev->data->dev_conf.rxmode.mq_mode != ETH_MQ_RX_RSS || !qcnt)
>                 return 0;
>
>         /* Update default RSS key and cfg */
> --
> 2.8.4
>


More information about the dev mailing list