On 01-Nov-18 4:04 PM, Ilya Maximets wrote:
If the multispeed fiber link is in DOWN state, ixgbe_setup_link
could take around a second of busy polling. This is highly
inconvenient for the case where single thread periodically
checks the link statuses. For example, OVS main thread
periodically updates the link statuses and hangs for a really
long time busy waiting on ixgbe_setup_link() for a DOWN fiber
ports. For case with 3 down ports it hangs for a 3 seconds and
unable to do anything including packet processing.
Fix that by shifting that workaround to a separate thread by
alarm handler that will try to set up link if it is DOWN.

Fixes: c12d22f65b13 ("net/ixgbe: ensure link status is updated")
CC: sta...@dpdk.org

Signed-off-by: Ilya Maximets <i.maxim...@samsung.com>
---

On my setup, this commit breaks ixgbe init in pktgen 3.5.7:

ixgbe_dev_start(): failure in ixgbe_dev_start(): -15
!PANIC!: rte_eth_dev_start: port=0, Input/output error
PANIC in pktgen_config_ports():
rte_eth_dev_start: port=0, Input/output error6: [build/DPDK/pktgen(_start+0x2a) [0x560880ec838a]] 5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7fabc654cb97]]
4: [build/DPDK/pktgen(main+0xe77) [0x560880ec0357]]
3: [build/DPDK/pktgen(pktgen_config_ports+0x1cf0) [0x560880ef53e0]]
2: [build/DPDK/pktgen(__rte_panic+0xc5) [0x560880eb11b4]]
1: [build/DPDK/pktgen(rte_dump_stack+0x2e) [0x560880fde69e]]
Aborted

--
Thanks,
Anatoly

Reply via email to