Hi Peng, As Wenzhuo pointed, we have a special version of tx_release_mbufs fo vector TX: ixgbe_tx_queue_release_mbufs_vec(). It only frees sw_ring[] entries that contains valid mbufs. So we don't need to set sw_ring[].mbuf = NULL at ixgbe_tx_free_bufs(). About the panic you mentioned: I think that was fixed just few days ago. Please have a look at: http://dpdk.org/ml/archives/dev/2015-July/022146.html Konstantin
> -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of HePeng > Sent: Monday, August 03, 2015 10:12 AM > To: Lu, Wenzhuo > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH] [new]ixgbe:set txep.mbuf to NULL when calling > ixgbe_tx_free_bufs > > Hi, wenzhuo, > Have to check that because I really had the panic when compile my code > with dpdk 2.0.0. > > Also I checked the code in the dpdk git repo. It does not check the > reference count, it just only calculate > the begin positions of mbufs that really needs to be recycled. > my code is retrieved from git://dpdk.org/dpdk <git://dpdk.org/dpdk>. > > Thanks for reviewing. > > > ? 2015?8?3????4:42?Lu, Wenzhuo <wenzhuo.lu at intel.com> ??? > > > > Hi Peng, > > There?re 2 versions of ixgbe_tx_queue_release_mbufs. One in ixgbe_rxtx.c, > > the other is in ixgbe_rxtx_vec.c. > > What you shown is the one in ixgbe_rxtx.c. You can find the one in > > ixgbe_rxtx_vec.c already has the sanity check for reference > count. > > Thanks.