Hi, Stephen Hemminger
> -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Stephen > Hemminger > Sent: Friday, August 31, 2018 11:12 PM > To: David Evans <davidjoshuaev...@gmail.com> > Cc: Yang, Qiming <qiming.y...@intel.com>; dev@dpdk.org > Subject: Re: [dpdk-dev] to wait or not to wait.. DPDK & OVS ixgbe with fibre > disconnected > > On Wed, 29 Aug 2018 16:57:55 -0500 > David Evans <davidjoshuaev...@gmail.com> wrote: > > > Hi! > > > > We have a thread running on ovs discuss. - Can you contribute? > > > > regarding ixgbe_ethdev.c > > > > ixgbe_dev_link_update() doesn't honour wait_to_complete flag always. > > > > Basically, where you have 'wait_to_complete' set to 0, we are still > > having to wait sometimes Dpdk is always attempting setup if > > intr->flags & IXGBE_FLAG_NEED_LINK_CONFIG Which happens if you > unplug > > fibre, or don't plug it in. > > > > is there a better way to handle this? It is causing OVS to get stuck > > busy... on the thread that calls this. > > > > eg: > > in line 4000 - ixgbe_setup_link(hw,speed,true) > > > > if ((intr->flags & IXGBE_FLAG_NEED_LINK_CONFIG) && > > ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) { > > speed = hw->phy.autoneg_advertised; > > if (!speed) > > ixgbe_get_link_capabilities(hw, &speed, &autoneg); > > ixgbe_setup_link(hw, speed, true); > > } > > > > > > or also... > > > > #0 rte_delay_us_block (us=100000) at > > /usr/src/debug/dpdk- > 17.11.3/lib/librte_eal/common/eal_common_timer.c:5 > > 9 > > #1 0x00007f548f79ceec in ixgbe_setup_mac_link_multispeed_fiber > > (hw=0x7f543fc2f680, speed=128, autoneg_wait_to_complete=0) at > > /usr/src/debug/dpdk- > 17.11.3/drivers/net/ixgbe/base/ixgbe_common.c:5155 > > #2 0x00007f548f7c2cb2 in ixgbe_dev_link_update_share (vf=0, > > wait_to_complete=0, dev=0x7f549492d480 <rte_eth_devices+82560>) at > > /usr/src/debug/dpdk-17.11.3/drivers/net/ixgbe/ixgbe_ethdev.c:4000 > > #3 ixgbe_dev_link_update (dev=0x7f549492d480 > <rte_eth_devices+82560>, > > wait_to_complete=0) at > > /usr/src/debug/dpdk-17.11.3/drivers/net/ixgbe/ixgbe_ethdev.c:4070 > > > > Thanks so much > > > > Dave. > > In my experience the wait flag is pretty useless. It means "wait until link is > up" > which means the wait loop happens in the driver when it is better handled by > the application. Also, many drivers do not implement it. Yes, you are right, we have a discussion about this several days before, do you have any comment on the following fix patch for this problem? http://patchwork.dpdk.org/patch/44110/