[dpdk-dev] [PATCH v6 0/4] support reset of VF link

Lu, Wenzhuo wenzhuo.lu at intel.com
Tue Jul 5 02:52:23 CEST 2016


Hi Luca,


> -----Original Message-----
> From: Luca Boccassi [mailto:lboccass at Brocade.com]
> Sent: Monday, July 4, 2016 11:48 PM
> To: Lu, Wenzhuo
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v6 0/4] support reset of VF link
> 
> On Mon, 2016-06-20 at 14:24 +0800, Wenzhuo Lu wrote:
> > If the PF link is down and up, VF link will not work accordingly.
> > This patch set addes the support of VF link reset. So, when VF
> > receices the messges of physical link down/up. APP can reset the VF
> > link and let it recover.
> >
> > PS: This patch set is splitted from a previous patch set, *automatic
> > link recovery on ixgbe/igb VF*, and it's base on the patch set
> > *support mailbox interruption on ixgbe/igb VF*.
> >
> > Wenzhuo Lu (3):
> >   lib/librte_ether: support device reset
> >   ixgbe: implement device reset on VF
> >   igb: implement device reset on VF
> >
> > Zhe Tao (1):
> >   i40e: implement device reset on VF
> >
> > v1:
> > - Added the implementation for the VF reset functionality.
> > v2:
> > - Changed the i40e related operations during VF reset.
> > v3:
> > - Resent the patches because of the mail sent issue.
> > v4:
> > - Removed some VF reset emulation code.
> > v5:
> > - Removed all the code related with lock.
> > v6:
> > - Updated the NIC feature overview matrix.
> > - Added more explanation in the doxygen comment of reset API.
> >
> >  doc/guides/nics/overview.rst           |  1 +
> >  doc/guides/rel_notes/release_16_07.rst | 13 ++++++
> >  drivers/net/e1000/igb_ethdev.c         | 59 ++++++++++++++++++++++++
> >  drivers/net/i40e/i40e_ethdev.h         |  4 ++
> >  drivers/net/i40e/i40e_ethdev_vf.c      | 83
> ++++++++++++++++++++++++++++++++++
> >  drivers/net/i40e/i40e_rxtx.c           | 10 ++++
> >  drivers/net/i40e/i40e_rxtx.h           |  4 ++
> >  drivers/net/ixgbe/ixgbe_ethdev.c       | 64 +++++++++++++++++++++++++-
> >  drivers/net/ixgbe/ixgbe_ethdev.h       |  2 +-
> >  drivers/net/ixgbe/ixgbe_rxtx.c         | 12 +++--
> >  lib/librte_ether/rte_ethdev.c          | 17 +++++++
> >  lib/librte_ether/rte_ethdev.h          | 24 ++++++++++
> >  lib/librte_ether/rte_ether_version.map |  7 +++
> >  13 files changed, 295 insertions(+), 5 deletions(-)
> 
> Hello Wenzhuo,
> 
> I'm testing this patchset, but I am sporadically running into an issue where the
> VFs reset fails after the PF flaps.
> 
> I have a VM running on a KVM box with a X540-AT2, passing 2 VFs in.
> 
> I am using calling rte_eth_dev_reset in response to a
> RTE_ETH_EVENT_INTR_RESET callback, and the following errors appear in the
> log:
> 
> PMD: ixgbevf_dev_reset(): Ixgbe VF reset: Failed to update link.
> PMD: ixgbe_alloc_rx_queue_mbufs(): RX mbuf alloc failed queue_id=0
> PMD: ixgbevf_dev_start(): Unable to initialize RX hardware (-12)
> PMD: ixgbevf_dev_reset(): Ixgbe VF reset: Failed to start device.
> 
> Jumping in with GDB, it seems that the rte_rxmbuf_alloc call in
> ixgbe_alloc_rx_queue_mbufs returns NULL at iteration 64 out of 2048.
> The application has ~500 2MB hugepages, and there's 2GB of free memory
> available on top of that.
> 
> Have you seen this before? Any pointer or suggestion for debugging?
> 
> Thanks!
> 
> --
> Kind regards,
> Luca Boccassi
I think the problem is the mbuf occupied by the packets is not released. This memory has to be released by the APP, so my patches haven’t covered this. Actually an example is needed to show how to use the reset API. I plan to modify the testpmd.
You may notice this feature is postponed to 16.11. Would you like to wait for the new version that will include an example? 


More information about the dev mailing list