DPDK patches and discussions
 help / color / mirror / Atom feed
From: Lewis Donzis <lew@perftech.com>
To: dev <dev@dpdk.org>
Cc: qiming.yang@intel.com, wenjun1.wu@intel.com, anatoly.burakov@intel.com
Subject: Hang in ixgbe_dev_link_update_share()
Date: Mon, 30 May 2022 09:02:35 -0500 (CDT)	[thread overview]
Message-ID: <633959622.4587761.1653919355365.JavaMail.zimbra@donzis.com> (raw)

Using DPDK 21.11.1 on FreeBSD 13.1, calling rte_eth_link_get_nowait() appears to hang waiting for the link to come up on an XL710 or 82599 based NIC.

This call eventually makes its way to ixgbe_dev_link_update_share() with wait_to_complete set to false.

Inside that function, there is this code:

/* BSD has no interrupt mechanism, so force NIC status synchronization. */ 
#ifdef RTE_EXEC_ENV_FREEBSD 
        wait = 1; 
#endif

This then calls ixgbe_check_link() with wait == true, which then calls ixgbe_check_mac_link_generic(), but the parameter is now called "link_up_wait_to_complete", and it loops forever waiting for the link to be up, with a 100ms delay between polls.

Perhaps our understanding is incorrect, but we're using rte_eth_link_get_nowait() because we can't tolerate any significant delay in the function call, but we certainly don't want to wait for the link to be up.  We're just trying to find out if it's up or down.  Empirically, removing the "wait = 1" restores normal operation.

Thanks,
lew

                 reply	other threads:[~2022-05-30 14:02 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=633959622.4587761.1653919355365.JavaMail.zimbra@donzis.com \
    --to=lew@perftech.com \
    --cc=anatoly.burakov@intel.com \
    --cc=dev@dpdk.org \
    --cc=qiming.yang@intel.com \
    --cc=wenjun1.wu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).