> -----Original Message-----
> From: Wu, Jingjing <jingjing...@intel.com>
> Sent: Wednesday, March 20, 2024 2:25 PM
> To: Yan, Zhirun <zhirun....@intel.com>; dev@dpdk.org
> Cc: jer...@marvell.com; pbhagavat...@marvell.com; sta...@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.