I'm pretty sure this is been reported before, but in ixgbe_ethdev.c, line 4311 begins:
/* BSD has no interrupt mechanism, so force NIC status synchronization. */ #ifdef RTE_EXEC_ENV_FREEBSD wait = 1; #endif We've had to remove this code ever since it was added because it causes improper delays in our code. When we ask for link status without waiting, we need for it not to wait, and I'm not sure why a lack of interrupts makes any difference in this case. Removing this code allows it to behave properly, best we can tell. Thanks, lew