I've reported this several times over the last two years, but there's been no reply and no change to the ixgbe driver.
Specifically, calling rte_eth_link_get_nowait() on FreeBSD does, in fact, wait for link-up which causes unexpected and long delays. I suggest removing the line from ixgbe_dev_link_update_share() that forces "wait" to be set on FreeBSD. Would someone be willing to commit this, please? Thanks, lew Here's the "git diff" from a modified version: diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index ab37c37469..008760e315 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -4314,11 +4314,6 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev, if (wait_to_complete == 0 || dev->data->dev_conf.intr_conf.lsc != 0) wait = 0; -/* BSD has no interrupt mechanism, so force NIC status synchronization. */ -#ifdef RTE_EXEC_ENV_FREEBSD - wait = 1; -#endif -