[PATCH] graph: fix head move when graph walk in mcore dispatch

Yan, Zhirun zhirun.yan at intel.com
Wed Mar 20 09:42:52 CET 2024



> -----Original Message-----
> From: Wu, Jingjing <jingjing.wu at intel.com>
> Sent: Wednesday, March 20, 2024 2:25 PM
> To: Yan, Zhirun <zhirun.yan at intel.com>; dev at dpdk.org
> Cc: jerinj at marvell.com; pbhagavatula at marvell.com; stable at dpdk.org
> Subject: RE: [PATCH] graph: fix head move when graph walk in mcore dispatch
> 
> 
> > >  		/* skip the src nodes which not bind with current worker */
> > >  		if ((int32_t)head < 0 && node->dispatch.lcore_id != graph-
> > > >dispatch.lcore_id)
> > >  			continue;
> > > -
> > > +		head++;
> > If current src node not bind with current core, It will go into infinite loop.
> > This line would have no chance to run.
> 
> Seems reasonable, it might be OK to change "head<0" to "head <1" the condition
> check?

No. "head<0" means it is src node. 
All src node would put before head = 0.  "Head<1" is confused.
You could find the details of graph reel under rte_graph_walk_rtc() in lib/graph/rte_graph_model_rtc.h

I guess if there are some src node missed, it may be caused by wrong config, for example, the missed src node not pin to a lcore.
Use rte_graph_model_mcore_dispatch_node_lcore_affinity_set() to pin the src node first.


More information about the stable mailing list