DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] to wait or not to wait.. DPDK & OVS ixgbe with fibre disconnected
@ 2018-08-29 21:57 David Evans
  2018-08-31 15:12 ` Stephen Hemminger
  0 siblings, 1 reply; 3+ messages in thread
From: David Evans @ 2018-08-29 21:57 UTC (permalink / raw)
  To: qiming.yang, dev

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:59
#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.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] to wait or not to wait.. DPDK & OVS ixgbe with fibre disconnected
  2018-08-29 21:57 [dpdk-dev] to wait or not to wait.. DPDK & OVS ixgbe with fibre disconnected David Evans
@ 2018-08-31 15:12 ` Stephen Hemminger
  2018-10-31  1:42   ` Zhao1, Wei
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Hemminger @ 2018-08-31 15:12 UTC (permalink / raw)
  To: David Evans; +Cc: qiming.yang, dev

On Wed, 29 Aug 2018 16:57:55 -0500
David Evans <davidjoshuaevans@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:59
> #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.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] to wait or not to wait.. DPDK & OVS ixgbe with fibre disconnected
  2018-08-31 15:12 ` Stephen Hemminger
@ 2018-10-31  1:42   ` Zhao1, Wei
  0 siblings, 0 replies; 3+ messages in thread
From: Zhao1, Wei @ 2018-10-31  1:42 UTC (permalink / raw)
  To: Stephen Hemminger, David Evans; +Cc: Yang, Qiming, dev, Ilya Maximets


Hi,  Stephen Hemminger

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

 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-10-31  1:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-29 21:57 [dpdk-dev] to wait or not to wait.. DPDK & OVS ixgbe with fibre disconnected David Evans
2018-08-31 15:12 ` Stephen Hemminger
2018-10-31  1:42   ` Zhao1, Wei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).