[PATCH v6] net/i40e: rework maximum frame size configuration

Zhang, Qi Z qi.z.zhang at intel.com
Thu Mar 2 10:51:45 CET 2023



> -----Original Message-----
> From: David Marchand <david.marchand at redhat.com>
> Sent: Tuesday, February 28, 2023 5:37 PM
> To: Zhang, Qi Z <qi.z.zhang at intel.com>
> Cc: Su, Simei <simei.su at intel.com>; Xing, Beilei <beilei.xing at intel.com>;
> Zhang, Yuying <yuying.zhang at intel.com>; dev at dpdk.org; Yang, Qiming
> <qiming.yang at intel.com>; stable at dpdk.org; Kevin Traynor
> <ktraynor at redhat.com>; Thomas Monjalon <thomas at monjalon.net>
> Subject: Re: [PATCH v6] net/i40e: rework maximum frame size configuration
> 
> Qi,
> 
> On Mon, Feb 27, 2023 at 1:35 AM Zhang, Qi Z <qi.z.zhang at intel.com> wrote:
> > > One issue is reported by David Marchand that error occurs in OVS due
> > > to the fix patch in mentioned changes below. The detailed reproduce
> > > step and result are in
> > > https://patchwork.dpdk.org/project/dpdk/patch/
> > > 20211207085946.121032-1-dapengx.yu at intel.com/.
> > >
> > > This patch removes unnecessary link status check and directly sets
> > > mac config in dev_start. Also, it sets the parameter "wait to
> > > complete" true to wait for more time to make sure adminq command
> execute completed.
> > >
> > > Fixes: a4ba77367923 ("net/i40e: enable maximum frame size at port
> > > level")
> > > Fixes: 2184f7cdeeaa ("net/i40e: fix max frame size config at port
> > > level")
> > > Fixes: 719469f13b11 ("net/i40e: fix jumbo frame Rx with X722")
> > > Cc: stable at dpdk.org
> > >
> > > Reported-by: David Marchand <david.marchand at redhat.com>
> > > Signed-off-by: Simei Su <simei.su at intel.com>
> >
> > Acked-by: Qi Zhang <qi.z.zhang at intel.com>
> 
> I was waiting for a ping... good thing I had a look at this thread.
> 
> I suggest splitting this in two parts before it reaches the main repo:
> - put the reverts first (the reason is that 21.11 stable branch already have
> them): this would end up the same as merging
> https://patchwork.dpdk.org/project/dpdk/patch/20221213091837.87953-1-
> david.marchand at redhat.com/
> that has been waiting since December,
> - have the move of i40e_aq_set_mac_config from eth_i40e_dev_init to
> i40e_dev_start + change in i40e_dev_link_update call in a second patch (i.e.
> the following diff),

OK, reverted in dpdk-next-net-intel.

And waiting for Simei's v7.

> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index a982e42264..371f42233e 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -1710,11 +1710,6 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void
> *init_params __rte_unused)
>          */
>         i40e_add_tx_flow_control_drop_filter(pf);
> 
> -       /* Set the max frame size to 0x2600 by default,
> -        * in case other drivers changed the default value.
> -        */
> -       i40e_aq_set_mac_config(hw, I40E_FRAME_SIZE_MAX, TRUE, false, 0,
> NULL);
> -
>         /* initialize RSS rule list */
>         TAILQ_INIT(&pf->rss_config_list);
> 
> @@ -2332,6 +2327,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
>         uint32_t intr_vector = 0;
>         struct i40e_vsi *vsi;
>         uint16_t nb_rxq, nb_txq;
> +       uint16_t max_frame_size;
> 
>         hw->adapter_stopped = 0;
> 
> @@ -2452,7 +2448,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
>                         PMD_DRV_LOG(WARNING, "Fail to set phy mask");
> 
>                 /* Call get_link_info aq command to enable/disable LSE */
> -               i40e_dev_link_update(dev, 0);
> +               i40e_dev_link_update(dev, 1);
>         }
> 
>         if (dev->data->dev_conf.intr_conf.rxq == 0) { @@ -2470,6 +2466,13 @@
> i40e_dev_start(struct rte_eth_dev *dev)
>                             "please call hierarchy_commit() "
>                             "before starting the port");
> 
> +       max_frame_size = dev->data->mtu ?
> +               dev->data->mtu + I40E_ETH_OVERHEAD :
> +               I40E_FRAME_SIZE_MAX;
> +
> +       /* Set the max frame size to HW*/
> +       i40e_aq_set_mac_config(hw, max_frame_size, TRUE, false, 0,
> + NULL);
> +
>         return I40E_SUCCESS;
> 
>  tx_err:
> 
> 
> This way, the new fix is easier to read too.
> Thanks.
> 
> 
> --
> David Marchand



More information about the stable mailing list