[dpdk-dev] to wait or not to wait.. DPDK & OVS ixgbe with fibre disconnected

Zhao1, Wei wei.zhao1 at intel.com
Wed Oct 31 02:42:49 CET 2018


Hi,  Stephen Hemminger

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Stephen
> Hemminger
> Sent: Friday, August 31, 2018 11:12 PM
> To: David Evans <davidjoshuaevans at gmail.com>
> Cc: Yang, Qiming <qiming.yang at intel.com>; dev at 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 <davidjoshuaevans at 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/

 


More information about the dev mailing list