Using DPDK 2.3 and ixgbe driver 4.13.15. When there is no traffic on the link and it is flapped, the VFs recover the link state properly. When there is too much traffic though, the link state can't be recovered for VFs. It seems to be caused by the PF driver putting the VF in a not clear to send state. Since the VF is not clear to send, it can't retrieve the link state via the mailbox. It looks like this can be fixed by restoring the clear to send state in the PF after the cleanup on state down:
*** ixgbe_main.c 2016-05-09 11:07:44.365431345 -0400
--- ixgbe_main.c.bak 2016-05-09 11:07:22.309430641 -0400
***************
*** 6128,6140 ****
ixgbe_clean_all_tx_rings(adapter);
ixgbe_clean_all_rx_rings(adapter);
-
- if (adapter->num_vfs) {
-
- /* Mark all the VFs as clear to send again */
- for (i = 0 ; i < adapter->num_vfs; i++)
- adapter->vfinfo[i].clear_to_send = 1;
- }
}
/**
--- 6128,6133 ----
Thoughts? Not sure why it works without above fix when traffic is light. The DPDK does resets here and there for the VF so perhaps timing makes a difference at restoring the clear to send state.
Thanks.