Hi Rakesh, On Tue, May 23, 2023 at 03:39:53PM +0000, Rakesh Kudurumalla wrote: > Ping > > Regards, > Rakesh > > > -----Original Message----- > > From: Rakesh Kudurumalla <rkuduruma...@marvell.com> > > Sent: Wednesday, April 26, 2023 2:58 PM > > To: Olivier Matz <olivier.m...@6wind.com> > > Cc: dev@dpdk.org; Jerin Jacob Kollanukkaran <jer...@marvell.com>; Nithin > > Kumar Dabilpuram <ndabilpu...@marvell.com>; Rakesh Kudurumalla > > <rkuduruma...@marvell.com> > > Subject: [PATCH 1/1] app/test: resolve mbuf_test application failure > > > > when RTE_ENABLE_ASSERT is defined test_mbuf application is failing > > because we are trying to attach extbuf to a cloned buffer to which external > > mbuf is already attached.This patch fixes the same. > > > > Signed-off-by: Rakesh Kudurumalla <rkuduruma...@marvell.com> > > --- > > v2: removed gerrit id > > > > app/test/test_mbuf.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c index > > 8d8d3b9386..e2b81db308 100644 > > --- a/app/test/test_mbuf.c > > +++ b/app/test/test_mbuf.c > > @@ -2375,6 +2375,7 @@ test_pktmbuf_ext_shinfo_init_helper(struct > > rte_mempool *pktmbuf_pool) > > GOTO_FAIL("%s: Bad packet length\n", __func__); > > > > /* attach the same external buffer to the cloned mbuf */ > > + clone->ol_flags = 0; > > rte_pktmbuf_attach_extbuf(clone, ext_buf_addr, buf_iova, buf_len, > > ret_shinfo);
I think we can simply remove the call to rte_pktmbuf_attach_extbuf() because after the call to rte_pktmbuf_clone(), the mbuf is already attached. I mean something like this: --- a/app/test/test_mbuf.c +++ b/app/test/test_mbuf.c @@ -2345,16 +2345,12 @@ test_pktmbuf_ext_shinfo_init_helper(struct rte_mempool *pktmbuf_pool) GOTO_FAIL("%s: External buffer is not attached to mbuf\n", __func__); - /* allocate one more mbuf */ + /* allocate one more mbuf, it is attached to the same external buffer */ clone = rte_pktmbuf_clone(m, pktmbuf_pool); if (clone == NULL) GOTO_FAIL("%s: mbuf clone allocation failed!\n", __func__); if (rte_pktmbuf_pkt_len(clone) != 0) GOTO_FAIL("%s: Bad packet length\n", __func__); - - /* attach the same external buffer to the cloned mbuf */ - rte_pktmbuf_attach_extbuf(clone, ext_buf_addr, buf_iova, buf_len, - ret_shinfo); if (clone->ol_flags != RTE_MBUF_F_EXTERNAL) GOTO_FAIL("%s: External buffer is not attached to mbuf\n", __func__); Regards, Olivier