net/ixgbe: fix busy polling while fiber link update
authorIlya Maximets <i.maximets@samsung.com>
Thu, 1 Nov 2018 16:04:59 +0000 (19:04 +0300)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 5 Nov 2018 14:01:25 +0000 (15:01 +0100)
commit0408f47ba4d67f0cb96f5e907bc9336b6cbff0dd
tree95207c586de8b8fcd3ce7239287b2ef1cefc239d
parent65c9d24170c9ec1db59d3472b7c4af3fd087d621
net/ixgbe: fix busy polling while fiber link update

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: stable@dpdk.org
Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
drivers/net/ixgbe/ixgbe_ethdev.c