[dpdk-dev] issue with ixgbevf speed/duplex introduced with commit 8ef32003772a14c61c70b540e41c259c482c2fb6

Roberts, Lee A. lee.roberts at hp.com
Fri Nov 7 17:36:08 CET 2014


Thomas,

I'm seeing an issue with ixgbevf speed/duplex reporting that appears to have been introduced with
commit 8ef32003772a14c61c70b540e41c259c482c2fb6 (http://www.dpdk.org/browse/dpdk/commit/lib/librte_pmd_ixgbe/ixgbe/ixgbe_vf.c?id=8ef32003772a14c61c70b540e41c259c482c2fb6)

The issue I'm seeing seems to involve the following code.  If I'm reading this correctly,
one sets "mac->get_link_status = true" if the port is not OK, where "true" means that one
still needs to get the link status.  Due to the added test "if (!mac->get_link_status)",
one branches to the early exit if mac->get_link_status is false---meaning we have already
obtained the link status---instead of continuing with the analysis in the function body.

-       if (!(hw->mbx.ops.check_for_rst(hw, 0))) {
-               *link_up = false;
-               *speed = 0;
-               return -1;
-       }
+       /* If we were hit with a reset drop the link */
+       if (!mbx->ops.check_for_rst(hw, 0) || !mbx->timeout)
+               mac->get_link_status = true;

-       links_reg = IXGBE_VFREAD_REG(hw, IXGBE_VFLINKS);
+       if (!mac->get_link_status)
+               goto out;

When I run "testpmd" on ixgbevf ports either in the host OS or passed
through to a virtual machine, "testpmd" reports that the ixgbevf ports
have "speed 100 Mbps - half-duplex".  With the previous code (or with
my patch), "testpmd" reports "speed 10000 Mbps - full-duplex".

-       Lee Roberts



More information about the dev mailing list