[PATCH v1 08/13] graph: introduce stream moving cross cores
Jerin Jacob
jerinjacobk at gmail.com
Mon Feb 20 15:17:26 CET 2023
On Thu, Nov 17, 2022 at 10:40 AM Zhirun Yan <zhirun.yan at intel.com> wrote:
>
> This patch introduces key functions to allow a worker thread to
> enable enqueue and move streams of objects to the next nodes over
> different cores.
>
> 1. add graph_sched_wq_node to hold graph scheduling workqueue node
> stream
> 2. add workqueue help functions to create/destroy/enqueue/dequeue
Two things, make as two patches
> @@ -39,6 +46,15 @@ struct rte_graph {
> uint32_t cir_mask; /**< Circular buffer wrap around mask. */
> rte_node_t nb_nodes; /**< Number of nodes in the graph. */
> rte_graph_off_t *cir_start; /**< Pointer to circular buffer. */
> + /* Graph schedule */
> + struct rte_graph_rq_head *rq __rte_cache_aligned; /* The run-queue */
> + struct rte_graph_rq_head rq_head; /* The head for run-queue list */
> +
> + SLIST_ENTRY(rte_graph) rq_next; /* The next for run-queue list */
> + unsigned int lcore_id; /**< The graph running Lcore. */
> + struct rte_ring *wq; /**< The work-queue for pending streams. */
> + struct rte_mempool *mp; /**< The mempool for scheduling streams. */
> + /* Graph schedule area */
> rte_graph_off_t nodes_start; /**< Offset at which node memory starts. */
> rte_graph_t id; /**< Graph identifier. */
> int socket; /**< Socket ID where memory is allocated. */
> @@ -63,6 +79,8 @@ struct rte_node {
> char parent[RTE_NODE_NAMESIZE]; /**< Parent node name. */
> char name[RTE_NODE_NAMESIZE]; /**< Name of the node. */
>
> + /* Fast schedule area */
> + unsigned int lcore_id __rte_cache_aligned; /**< Node running Lcore. */
Do we need __rte_cache_aligned here? I am wondering can we add union
for different model specific area ONLY for fast path so that we can
save memory and fast path data will be more warm.
> /* Fast path area */
> #define RTE_NODE_CTX_SZ 16
> uint8_t ctx[RTE_NODE_CTX_SZ] __rte_cache_aligned; /**< Node Context. */
> --
> 2.25.1
>
More information about the dev
mailing list