Hi Gregory, The mechanism is different. Kernel driver has a watchdog to check the link state periodically. So, it can reset the link automatically.
Best regards Wenzhuo Lu From: Gregory Etelson [mailto:greg...@weka.io] Sent: Thursday, May 25, 2017 11:45 AM To: Lu, Wenzhuo Cc: dev@dpdk.org; us...@dpdk.org; Yigit, Ferruh Subject: Re: IXBGE VF: link state detection Hello, In this case I would expect ixgbe VF bound to kernel driver also fail on link up detection In my tests, VFs bound to kernel drivers operate correctly. Regards, Gregory On Thursday, 25 May 2017 03:56:34 IDT Lu, Wenzhuo wrote: Hi Gregory, After you turned the port donw/up, PF will re-init the VF’s registers. So, VF cannot work correctly. That’s why you can know link down but not link up and have to reset the process. Best regards Wenzhuo Lu From: Gregory Etelson [mailto:greg...@weka.io] Sent: Wednesday, May 24, 2017 5:50 PM To: dev@dpdk.org<mailto:dev@dpdk.org> Cc: us...@dpdk.org<mailto:us...@dpdk.org>; Yigit, Ferruh; Lu, Wenzhuo Subject: IXBGE VF: link state detection Hello, In my tests DPDK-17.05.0 process queries link state with rte_eth_link_get() each 50 msec during 5-20 MB/sec IOs flow. I turn Ethernet switch port down and up and check IXGBE VF PMD reaction to link state changes. VF PMD correctly recognize link down events but may miss link up. When the fault occurs, subsequent calls to rte_eth_link_get will return link_status == 0 forever. I need to reset DPDK process to get correct link state value. My debugging shows that in case of the fault, mbx->ops.read(hw, &in_msg, 1, 0) in ixgbe_check_mac_link_vf keeps returning non-zero value Regards, Gregory