[dpdk-users] A question about the link status of the intel E810 nic can not be up?

Message ID 41f0c2c9f77348fbb22dad35ef155536@huawei.com (mailing list archive)
State Changes Requested, archived
Delegated to: Qi Zhang
Headers
Series [dpdk-users] A question about the link status of the intel E810 nic can not be up? |

Checks

Context Check Description
ci/iol-testing warning apply patch failure

Commit Message

Yunjian Wang Jan. 10, 2022, 3:20 a.m. UTC
  Hi, All:

I am using Intel E810 with DPDK v21.11 to create a dpdkbond but there
is a probability that the failure will occur.

During the test, the bonding is repeatedly added and deleted. Sometimes,
the link status of the NIC is Down. And if call ice_dev_set_link_up again,
the link status of the NIC can be recovered. 

Alternatively, the problem can be avoided by modifying the ice pmd driver.
  

Comments

Qi Zhang Jan. 10, 2022, 9:29 a.m. UTC | #1
> -----Original Message-----
> From: wangyunjian <wangyunjian@huawei.com>
> Sent: Monday, January 10, 2022 11:20 AM
> To: dev@dpdk.org; users@dpdk.org; Yang, Qiming <qiming.yang@intel.com>;
> Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: Huangshaozhang <huangshaozhang@huawei.com>; dingxiaoxiong
> <dingxiaoxiong@huawei.com>
> Subject: [dpdk-dev] [dpdk-users] A question about the link status of the intel
> E810 nic can not be up?
> 
> Hi, All:
> 
> I am using Intel E810 with DPDK v21.11 to create a dpdkbond but there is a
> probability that the failure will occur.
> 
> During the test, the bonding is repeatedly added and deleted. Sometimes, the
> link status of the NIC is Down. And if call ice_dev_set_link_up again, the link
> status of the NIC can be recovered.
> 
> Alternatively, the problem can be avoided by modifying the ice pmd driver.
> 
> diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index
> 13a7a9702a..fcd22e20a5 100644
> --- a/drivers/net/ice/ice_ethdev.c
> +++ b/drivers/net/ice/ice_ethdev.c
> @@ -3604,7 +3604,7 @@ ice_dev_start(struct rte_eth_dev *dev)
>         ice_dev_set_link_up(dev);
> 
>         /* Call get_link_info aq commond to enable/disable LSE */
> -       ice_link_update(dev, 0);
> +       ice_link_update(dev, 1);

This looks good to me, it's reasonable to wait for complete right after set link up as it is not in an link status change interrupt handling scenario.

We will try to reproduce this issue, meanwhile could you help on following below 2 things.

1. share the device ID / firmware version that you met this issue.
2. send a v2 with reworded title and commit log as a normal patch if you want to contribute.

Thanks
Qi

> 
>         pf->adapter_stopped = false;
  
Yunjian Wang Jan. 10, 2022, 10:17 a.m. UTC | #2
> -----Original Message-----
> From: Zhang, Qi Z [mailto:qi.z.zhang@intel.com]
> Sent: Monday, January 10, 2022 5:29 PM
> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org; users@dpdk.org;
> Yang, Qiming <qiming.yang@intel.com>
> Cc: Huangshaozhang <huangshaozhang@huawei.com>; dingxiaoxiong
> <dingxiaoxiong@huawei.com>
> Subject: RE: [dpdk-dev] [dpdk-users] A question about the link status of the intel
> E810 nic can not be up?
> 
> 
> 
> > -----Original Message-----
> > From: wangyunjian <wangyunjian@huawei.com>
> > Sent: Monday, January 10, 2022 11:20 AM
> > To: dev@dpdk.org; users@dpdk.org; Yang, Qiming
> > <qiming.yang@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>
> > Cc: Huangshaozhang <huangshaozhang@huawei.com>; dingxiaoxiong
> > <dingxiaoxiong@huawei.com>
> > Subject: [dpdk-dev] [dpdk-users] A question about the link status of
> > the intel
> > E810 nic can not be up?
> >
> > Hi, All:
> >
> > I am using Intel E810 with DPDK v21.11 to create a dpdkbond but there
> > is a probability that the failure will occur.
> >
> > During the test, the bonding is repeatedly added and deleted.
> > Sometimes, the link status of the NIC is Down. And if call
> > ice_dev_set_link_up again, the link status of the NIC can be recovered.
> >
> > Alternatively, the problem can be avoided by modifying the ice pmd driver.
> >
> > diff --git a/drivers/net/ice/ice_ethdev.c
> > b/drivers/net/ice/ice_ethdev.c index
> > 13a7a9702a..fcd22e20a5 100644
> > --- a/drivers/net/ice/ice_ethdev.c
> > +++ b/drivers/net/ice/ice_ethdev.c
> > @@ -3604,7 +3604,7 @@ ice_dev_start(struct rte_eth_dev *dev)
> >         ice_dev_set_link_up(dev);
> >
> >         /* Call get_link_info aq commond to enable/disable LSE */
> > -       ice_link_update(dev, 0);
> > +       ice_link_update(dev, 1);
> 
> This looks good to me, it's reasonable to wait for complete right after set link
> up as it is not in an link status change interrupt handling scenario.
> 
> We will try to reproduce this issue, meanwhile could you help on following
> below 2 things.
> 
> 1. share the device ID / firmware version that you met this issue.

# ethtool -i eth16
driver: ice
version: 1.6.4
firmware-version: 3.10 0x8000ad4a 1.3106.0
expansion-rom-version: 
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

# lspci -n -s 04:00.0
04:00.0 0200: 8086:159b (rev 02)

> 2. send a v2 with reworded title and commit log as a normal patch if you want
> to contribute.

OK, I'll send v2 patch to fix it.

Thanks
> 
> Thanks
> Qi
> 
> >
> >         pf->adapter_stopped = false;
  

Patch

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 13a7a9702a..fcd22e20a5 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -3604,7 +3604,7 @@  ice_dev_start(struct rte_eth_dev *dev)
        ice_dev_set_link_up(dev);
 
        /* Call get_link_info aq commond to enable/disable LSE */
-       ice_link_update(dev, 0);
+       ice_link_update(dev, 1);
 
        pf->adapter_stopped = false;