[dpdk-dev] [PATCH] lib/librte_vhost:fix can't send packet anymore after mempool is full again

Ouyang, Changchun changchun.ouyang at intel.com
Fri Mar 20 08:28:00 CET 2015



> -----Original Message-----
> From: Linhaifeng [mailto:haifeng.lin at huawei.com]
> Sent: Friday, March 20, 2015 2:36 PM
> To: dev at dpdk.org
> Cc: Ouyang, Changchun; Xie, Huawei
> Subject: Re: [PATCH] lib/librte_vhost:fix can't send packet anymore after
> mempool is full again
> 
> 
> 
> On 2015/3/20 11:54, linhaifeng wrote:
> > From: Linhaifeng <haifeng.lin at huawei.com>
> >
> > When failed to malloc buffer from mempool we just update last_used_idx
> > but not used->idx so after many times vhost thought have handle all
> > packets but virtio_net thought vhost have not handle all packets and
> > will not update avail->idx.
> >
> > Signed-off-by: Linhaifeng <haifeng.lin at huawei.com>
> > ---
> >  lib/librte_vhost/vhost_rxtx.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/lib/librte_vhost/vhost_rxtx.c
> > b/lib/librte_vhost/vhost_rxtx.c index 535c7a1..93a8fff 100644
> > --- a/lib/librte_vhost/vhost_rxtx.c
> > +++ b/lib/librte_vhost/vhost_rxtx.c
> > @@ -609,7 +609,7 @@ rte_vhost_dequeue_burst(struct virtio_net *dev,
> uint16_t queue_id,
> >  		if (unlikely(m == NULL)) {
> >  			RTE_LOG(ERR, VHOST_DATA,
> >  				"Failed to allocate memory for mbuf.\n");
> > -			return entry_success;
> > +			goto finish;
> 
> or use 'break' replace of 'goto' ?

Make sense, I can review if you make a v2 patch
Thanks
Changchun




More information about the dev mailing list