Qi, On Mon, Feb 27, 2023 at 1:35 AM Zhang, Qi Z <qi.z.zh...@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...@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: sta...@dpdk.org > > > > Reported-by: David Marchand <david.march...@redhat.com> > > Signed-off-by: Simei Su <simei...@intel.com> > > Acked-by: Qi Zhang <qi.z.zh...@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.march...@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), 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