[PATCH v1 0/3] fix tunnel support for VXLAN in FDIR

2022-06-21 Thread Zhirun Yan
FDIR Zhirun Yan (2): net/ice/base: extend VXLAN type with inner pattern for FDIR net/ice: fix outer src mac as FDIR input field drivers/net/ice/base/ice_fdir.c | 4 +- drivers/net/ice/ice_ethdev.h | 11 +++ drivers/net/ice/ice_fdir_filter.c | 131 -- 3

[PATCH v1 1/3] net/ice/base: extend VXLAN type with inner pattern for FDIR

2022-06-21 Thread Zhirun Yan
-by: Zhirun Yan --- drivers/net/ice/base/ice_fdir.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/ice/base/ice_fdir.c b/drivers/net/ice/base/ice_fdir.c index ae76361102..6dbd70abaa 100644 --- a/drivers/net/ice/base/ice_fdir.c +++ b/drivers/net/ice/base

[PATCH v1 2/3] net/ice: fix outer src mac as FDIR input field

2022-06-21 Thread Zhirun Yan
Add src mac in input set map. If not add this, the src mac can not be parsed and this field will be ignored. Add outer mac as extracted key input to avoid rule conflict for VXLAN rule when outer src mac change only. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_ethdev.h | 3

[PATCH v1 3/3] net/ice: fix flow management in FDIR

2022-06-21 Thread Zhirun Yan
From: Xiao Wang The supported protocol fields e.g. outer tuples should be included in the key definition of rte_hash table. Besides, a protocol field should be used only when the corresponding mask is set. Signed-off-by: Xiao Wang --- drivers/net/ice/ice_ethdev.h | 8 ++ drivers/net/ice

[dpdk-dev] [PATCH v3] net/ice: support VXLAN VNI field in FDIR

2021-03-31 Thread Zhirun Yan
reserved field adjacent should always be 0. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_fdir_filter.c | 23 --- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c index 3af5812660..92e18d59cc

[dpdk-dev] [PATCH v2 0/3] Refactor FDIR pattern parser

2021-01-26 Thread Zhirun Yan
, using input_set_f for outer, input_set_l for inner or non-tunnel fields. Adjust indentation for easy review. Enable VXLAN inner/outer fields. Zhirun Yan (3): net/ice: clean input set macro definition net/ice: refactor flow pattern parser net/ice: add outer input set mask to distinguish outer

[dpdk-dev] [PATCH v2 1/3] net/ice: clean input set macro definition

2021-01-26 Thread Zhirun Yan
the redundant inner/outer info. ICE_INSET_TUN_* is used by switch module, should be removed after switch refactor. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_fdir_filter.c | 8 +- drivers/net/ice/ice_generic_flow.h | 234 - 2 files changed, 104 insertions

[dpdk-dev] [PATCH v2 2/3] net/ice: refactor flow pattern parser

2021-01-26 Thread Zhirun Yan
ed as tunnel and QFI, TEID should set into input_set_f. todo: 1. Distinguish gtpu input set. Put QFI, TEID into input set outer. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_fdir_filter.c | 478 +++--- 1 file changed, 239 insertions(+), 239 deletions(-) diff --

[dpdk-dev] [PATCH v2 3/3] net/ice: add outer input set mask to distinguish outer fields

2021-01-26 Thread Zhirun Yan
Add 64-bit input_set_mask_f for outer inputset. input_set_mask_f is used for inner fields or non-tunnel fields. Adjust indentation of ice_pattern_match_item list in switch, ACL, RSS and FDIR for easy review. For fields in tunnel layer, put them in outer part. Signed-off-by: Zhirun Yan

[dpdk-dev] [PATCH v3 0/6] Refactor FDIR pattern parser

2021-03-01 Thread Zhirun Yan
, using input_set_f for outer, input_set_l for inner or non-tunnel fields. Adjust indentation for easy review. Enable VXLAN inner/outer fields. Zhirun Yan (6): net/ice: clean input set macro definition net/ice: refactor structure field net/ice: refactor flow pattern parser net/ice: refactor

[dpdk-dev] [PATCH v3 1/6] net/ice: clean input set macro definition

2021-03-01 Thread Zhirun Yan
the redundant inner/outer info. ICE_INSET_TUN_* is used by switch module, should be removed after switch refactor. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_fdir_filter.c | 8 +- drivers/net/ice/ice_generic_flow.h | 234 - 2 files changed, 104 insertions

[dpdk-dev] [PATCH v3 2/6] net/ice: refactor structure field

2021-03-01 Thread Zhirun Yan
This patch use input_set_o and input_set_i to distinguish inner/outer input set. input_set_i is only used for inner field. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_ethdev.h | 4 ++-- drivers/net/ice/ice_fdir_filter.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions

[dpdk-dev] [PATCH v3 3/6] net/ice: refactor flow pattern parser

2021-03-01 Thread Zhirun Yan
avior. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_fdir_filter.c | 475 +++--- 1 file changed, 236 insertions(+), 239 deletions(-) diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c index 570ec56058..6bee2b1167 100644 --- a/drivers/ne

[dpdk-dev] [PATCH v3 4/6] net/ice: refactor input set conf

2021-03-01 Thread Zhirun Yan
For tunnel or non-tunnel packet, the input set is in outer_input_set and use seg_tun[0]. seg_tun[1] is only used for tunnel inner fields. This patch make align with input_set inner/outer with seg_tun[] and simplify it. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_fdir_filter.c | 12

[dpdk-dev] [PATCH v3 5/6] net/ice: add outer input set mask to distinguish outer fields

2021-03-01 Thread Zhirun Yan
use input_set_mask_o and set the input_set_mask_i all none. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_acl_filter.c| 10 +- drivers/net/ice/ice_fdir_filter.c | 72 --- drivers/net/ice/ice_generic_flow.c | 6 +- drivers/net/ice/ice_generic_flow.h | 3 +- drivers/net/ice

[dpdk-dev] [PATCH v3 6/6] net/ice: clean GTPU flow_type for FDIR

2021-03-01 Thread Zhirun Yan
Currently, FDIR only support GTPU outer fields in PF. Clean the redundant GTPU inner info in flow type definition and align with shared code. Signed-off-by: Zhirun Yan Signed-off-by: Junfeng Guo --- drivers/net/ice/ice_fdir_filter.c | 19 --- 1 file changed, 8 insertions(+), 11

[PATCH 1/2] net/ice/base: add ability to set markid via switch filter

2023-02-13 Thread Zhirun Yan
Support to add large action to set 32 bits markid via switch filter. Signed-off-by: Zhirun Yan --- drivers/net/ice/base/ice_switch.c | 216 +- drivers/net/ice/base/ice_switch.h | 44 ++ drivers/net/ice/base/ice_type.h | 1 + 3 files changed, 258 insertions

[PATCH 2/2] net/ice: support mark action in switch

2023-02-13 Thread Zhirun Yan
This patch add mark action in switch filter. Signed-off-by: Zhirun Yan --- drivers/net/ice/ice_switch_filter.c | 9 + 1 file changed, 9 insertions(+) diff --git a/drivers/net/ice/ice_switch_filter.c b/drivers/net/ice/ice_switch_filter.c index 110d8895fe..1ff4b1afda 100644 --- a

[PATCH v6 00/15] graph enhancement for multi-core dispatch

2023-05-08 Thread Zhirun Yan
troduce graph clone API. 7. Introduce stream moving with scheduler work-queue in patch 8~12. 8. Add stats for new models. 9. Abstract default graph config process and integrate new model into example/l3fwd-graph. Add new parameters for model choosing. We could run with new worker model by th

[PATCH v6 01/15] graph: rename rte_graph_work as common

2023-05-08 Thread Zhirun Yan
Rename rte_graph_work.h to rte_graph_work_common.h for supporting multiple graph worker model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- MAINTAINERS | 1 + lib/graph/graph_pcap.c

[PATCH v6 02/15] graph: split graph worker into common and default model

2023-05-08 Thread Zhirun Yan
To support multiple graph worker model, split graph into common and default. Naming the current walk function as rte_graph_model_rtc cause the default model is RTC(Run-to-completion). Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_pcap.c

[PATCH v6 03/15] graph: move node process into inline function

2023-05-08 Thread Zhirun Yan
Node process is a single and reusable block, move the code into an inline function. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_rtc.h | 20 ++--- lib/graph/rte_graph_worker_common.h | 33

[PATCH v6 04/15] graph: add get/set graph worker model APIs

2023-05-08 Thread Zhirun Yan
Add new get/set APIs to configure graph worker model which is used to determine which model will be chosen. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/meson.build | 1 + lib/graph/rte_graph_worker.c| 54

[PATCH v6 05/15] graph: introduce graph node core affinity API

2023-05-08 Thread Zhirun Yan
Add lcore_id for node to hold affinity core id and impl rte_graph_model_dispatch_lcore_affinity_set to set node affinity with specific lcore. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_private.h| 1 + lib/graph

[PATCH v6 06/15] graph: introduce graph bind unbind API

2023-05-08 Thread Zhirun Yan
Add lcore_id for graph to hold affinity core id where graph would run on. Add bind/unbind API to set/unset graph affinity attribute. lcore_id will be set as MAX by default, it means not enable this attribute. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan

[PATCH v6 07/15] graph: introduce graph clone API for other worker core

2023-05-08 Thread Zhirun Yan
This patch adds graph API for supporting to clone the graph object for a specified worker core. The new graph will also clone all nodes. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 110

[PATCH v6 08/15] graph: add struct for stream moving between cores

2023-05-08 Thread Zhirun Yan
Add graph_sched_wq_node to hold graph scheduling workqueue node. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 1 + lib/graph/graph_populate.c | 1 + lib/graph/graph_private.h | 12

[PATCH v6 09/15] graph: introduce stream moving cross cores

2023-05-08 Thread Zhirun Yan
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. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c| 6 +- lib/graph

[PATCH v6 10/15] graph: enable create and destroy graph scheduling workqueue

2023-05-08 Thread Zhirun Yan
This patch enables to create and destroy scheduling workqueue into common graph operations. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 9 + 1 file changed, 9 insertions(+) diff --git a/lib/graph/graph.c b/lib/graph

[PATCH v6 11/15] graph: introduce graph walk by cross-core dispatch

2023-05-08 Thread Zhirun Yan
queue first, then handle the local work queue. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_dispatch.h | 43 1 file changed, 43 insertions(+) diff --git a/lib/graph/rte_graph_model_dispatch.h b/lib

[PATCH v6 12/15] graph: enable graph multicore dispatch scheduler model

2023-05-08 Thread Zhirun Yan
This patch enables to chose new scheduler model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_worker.h | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/graph/rte_graph_worker.h b/lib/graph

[PATCH v6 13/15] graph: add stats for cross-core dispatching

2023-05-08 Thread Zhirun Yan
Add stats for cross-core dispatching scheduler if stats collection is enabled. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_debug.c | 6 +++ lib/graph/graph_stats.c | 74 +--- lib/graph

[PATCH v6 15/15] doc: update multicore dispatch model in graph guides

2023-05-08 Thread Zhirun Yan
Update graph documentation to introduce new multicore dispatch model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- doc/guides/prog_guide/graph_lib.rst | 59 +++-- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a

[PATCH v6 14/15] examples/l3fwd-graph: introduce multicore dispatch worker model

2023-05-08 Thread Zhirun Yan
,9)" -P --model="dispatch" Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- examples/l3fwd-graph/main.c | 236 +--- 1 file changed, 194 insertions(+), 42 deletions(-) diff --git a/examples/l3fwd-graph/main.c b/exa

[PATCH] maintainers: update for graph libraries

2024-02-22 Thread Zhirun Yan
Update the email address for graph libraries. Signed-off-by: Zhirun Yan --- MAINTAINERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 962c359cdd..ff71dc2825 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1738,7 +1738,7 @@ Graph M: Jerin

[PATCH v1] test/graph: fix unused return value

2023-07-20 Thread Zhirun Yan
Return value stored in "ret" but it may be overwritten before use. Add goto to return when meet an error. Issue reported by coverity scan. Coverity issue: 395532 Fixes: 15f483feec65 ("graph: fix model check in core binding") Signed-off-by: Zhirun Yan --- app/te

[PATCH v2 00/15] graph enhancement for multi-core dispatch

2023-03-23 Thread Zhirun Yan
8~12. 8. Add stats for new models. 9. Abstract default graph config process and integrate new model into example/l3fwd-graph. Add new parameters for model choosing. We could run with new worker model by this: ./dpdk-l3fwd-graph -l 8,9,10,11 -n 4 -- -p 0x1 --config="(0,0,9)" -P --model

[PATCH v2 01/15] graph: rename rte_graph_work as common

2023-03-23 Thread Zhirun Yan
Rename rte_graph_work.h to rte_graph_work_common.h for supporting multiple graph worker model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- MAINTAINERS | 1 + lib/graph/graph_pcap.c

[PATCH v2 02/15] graph: split graph worker into common and default model

2023-03-23 Thread Zhirun Yan
To support multiple graph worker model, split graph into common and default. Naming the current walk function as rte_graph_model_rtc cause the default model is RTC(Run-to-completion). Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_pcap.c

[PATCH v2 03/15] graph: move node process into inline function

2023-03-23 Thread Zhirun Yan
Node process is a single and reusable block, move the code into an inline function. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_rtc.h | 20 ++--- lib/graph/rte_graph_worker_common.h | 33

[PATCH v2 04/15] graph: add get/set graph worker model APIs

2023-03-23 Thread Zhirun Yan
Add new get/set APIs to configure graph worker model which is used to determine which model will be chosen. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/meson.build | 1 + lib/graph/rte_graph_worker.c| 54

[PATCH v2 05/15] graph: introduce graph node core affinity API

2023-03-23 Thread Zhirun Yan
Add lcore_id for node to hold affinity core id and impl rte_graph_model_dispatch_lcore_affinity_set to set node affinity with specific lcore. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_private.h| 1 + lib/graph

[PATCH v2 06/15] graph: introduce graph bind unbind API

2023-03-23 Thread Zhirun Yan
Add lcore_id for graph to hold affinity core id where graph would run on. Add bind/unbind API to set/unset graph affinity attribute. lcore_id will be set as MAX by default, it means not enable this attribute. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan

[PATCH v2 07/15] graph: introduce graph clone API for other worker core

2023-03-23 Thread Zhirun Yan
This patch adds graph API for supporting to clone the graph object for a specified worker core. The new graph will also clone all nodes. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 110

[PATCH v2 08/15] graph: add struct for stream moving between cores

2023-03-23 Thread Zhirun Yan
Add graph_sched_wq_node to hold graph scheduling workqueue node. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 1 + lib/graph/graph_populate.c | 1 + lib/graph/graph_private.h | 12

[PATCH v2 09/15] graph: introduce stream moving cross cores

2023-03-23 Thread Zhirun Yan
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. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_private.h| 27 + lib/graph

[PATCH v2 10/15] graph: enable create and destroy graph scheduling workqueue

2023-03-23 Thread Zhirun Yan
This patch enables to create and destroy scheduling workqueue into common graph operations. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 9 + 1 file changed, 9 insertions(+) diff --git a/lib/graph/graph.c b/lib/graph

[PATCH v2 11/15] graph: introduce graph walk by cross-core dispatch

2023-03-23 Thread Zhirun Yan
queue first, then handle the local work queue. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_dispatch.h | 42 1 file changed, 42 insertions(+) diff --git a/lib/graph/rte_graph_model_dispatch.h b/lib

[PATCH v2 12/15] graph: enable graph multicore dispatch scheduler model

2023-03-23 Thread Zhirun Yan
This patch enables to chose new scheduler model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_worker.h | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/graph/rte_graph_worker.h b/lib/graph

[PATCH v2 13/15] graph: add stats for corss-core dispatching

2023-03-23 Thread Zhirun Yan
Add stats for cross-core dispatching scheduler if stats collection is enabled. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_debug.c | 6 +++ lib/graph/graph_stats.c | 74 +--- lib/graph

[PATCH v2 14/15] examples/l3fwd-graph: introduce multicore dispatch worker model

2023-03-23 Thread Zhirun Yan
,9)" -P --model="dispatch" Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- examples/l3fwd-graph/main.c | 237 +--- 1 file changed, 195 insertions(+), 42 deletions(-) diff --git a/examples/l3fwd-graph/main.c b/exa

[PATCH v2 15/15] doc: update multicore dispatch model in graph guides

2023-03-23 Thread Zhirun Yan
Update graph documentation to introduce new multicore dispatch model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- doc/guides/prog_guide/graph_lib.rst | 59 +++-- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a

[PATCH v3 00/15] graph enhancement for multi-core dispatch

2023-03-28 Thread Zhirun Yan
r new models. 9. Abstract default graph config process and integrate new model into example/l3fwd-graph. Add new parameters for model choosing. We could run with new worker model by this: ./dpdk-l3fwd-graph -l 8,9,10,11 -n 4 -- -p 0x1 --config="(0,0,9)" -P --model="dispatch" R

[PATCH v3 01/15] graph: rename rte_graph_work as common

2023-03-28 Thread Zhirun Yan
Rename rte_graph_work.h to rte_graph_work_common.h for supporting multiple graph worker model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- MAINTAINERS | 1 + lib/graph/graph_pcap.c

[PATCH v3 02/15] graph: split graph worker into common and default model

2023-03-28 Thread Zhirun Yan
To support multiple graph worker model, split graph into common and default. Naming the current walk function as rte_graph_model_rtc cause the default model is RTC(Run-to-completion). Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_pcap.c

[PATCH v3 03/15] graph: move node process into inline function

2023-03-28 Thread Zhirun Yan
Node process is a single and reusable block, move the code into an inline function. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_rtc.h | 20 ++--- lib/graph/rte_graph_worker_common.h | 33

[PATCH v3 04/15] graph: add get/set graph worker model APIs

2023-03-28 Thread Zhirun Yan
Add new get/set APIs to configure graph worker model which is used to determine which model will be chosen. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/meson.build | 1 + lib/graph/rte_graph_worker.c| 54

[PATCH v3 05/15] graph: introduce graph node core affinity API

2023-03-28 Thread Zhirun Yan
Add lcore_id for node to hold affinity core id and impl rte_graph_model_dispatch_lcore_affinity_set to set node affinity with specific lcore. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_private.h| 1 + lib/graph

[PATCH v3 06/15] graph: introduce graph bind unbind API

2023-03-28 Thread Zhirun Yan
Add lcore_id for graph to hold affinity core id where graph would run on. Add bind/unbind API to set/unset graph affinity attribute. lcore_id will be set as MAX by default, it means not enable this attribute. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan

[PATCH v3 07/15] graph: introduce graph clone API for other worker core

2023-03-28 Thread Zhirun Yan
This patch adds graph API for supporting to clone the graph object for a specified worker core. The new graph will also clone all nodes. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 110

[PATCH v3 08/15] graph: add struct for stream moving between cores

2023-03-28 Thread Zhirun Yan
Add graph_sched_wq_node to hold graph scheduling workqueue node. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 1 + lib/graph/graph_populate.c | 1 + lib/graph/graph_private.h | 12

[PATCH v3 09/15] graph: introduce stream moving cross cores

2023-03-28 Thread Zhirun Yan
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. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_private.h| 27 + lib/graph

[PATCH v3 10/15] graph: enable create and destroy graph scheduling workqueue

2023-03-28 Thread Zhirun Yan
This patch enables to create and destroy scheduling workqueue into common graph operations. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 9 + 1 file changed, 9 insertions(+) diff --git a/lib/graph/graph.c b/lib/graph

[PATCH v3 11/15] graph: introduce graph walk by cross-core dispatch

2023-03-28 Thread Zhirun Yan
queue first, then handle the local work queue. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_dispatch.h | 42 1 file changed, 42 insertions(+) diff --git a/lib/graph/rte_graph_model_dispatch.h b/lib

[PATCH v3 12/15] graph: enable graph multicore dispatch scheduler model

2023-03-28 Thread Zhirun Yan
This patch enables to chose new scheduler model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_worker.h | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/graph/rte_graph_worker.h b/lib/graph

[PATCH v3 13/15] graph: add stats for cross-core dispatching

2023-03-28 Thread Zhirun Yan
Add stats for cross-core dispatching scheduler if stats collection is enabled. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_debug.c | 6 +++ lib/graph/graph_stats.c | 74 +--- lib/graph

[PATCH v3 14/15] examples/l3fwd-graph: introduce multicore dispatch worker model

2023-03-28 Thread Zhirun Yan
,9)" -P --model="dispatch" Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- examples/l3fwd-graph/main.c | 237 +--- 1 file changed, 195 insertions(+), 42 deletions(-) diff --git a/examples/l3fwd-graph/main.c b/exa

[PATCH v3 15/15] doc: update multicore dispatch model in graph guides

2023-03-28 Thread Zhirun Yan
Update graph documentation to introduce new multicore dispatch model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- doc/guides/prog_guide/graph_lib.rst | 59 +++-- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a

[PATCH v4 00/15] graph enhancement for multi-core dispatch

2023-03-29 Thread Zhirun Yan
raph clone API. 7. Introduce stream moving with scheduler work-queue in patch 8~12. 8. Add stats for new models. 9. Abstract default graph config process and integrate new model into example/l3fwd-graph. Add new parameters for model choosing. We could run with new worker model by this: ./dpdk-l3f

[PATCH v4 01/15] graph: rename rte_graph_work as common

2023-03-29 Thread Zhirun Yan
Rename rte_graph_work.h to rte_graph_work_common.h for supporting multiple graph worker model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- MAINTAINERS | 1 + lib/graph/graph_pcap.c

[PATCH v4 02/15] graph: split graph worker into common and default model

2023-03-29 Thread Zhirun Yan
To support multiple graph worker model, split graph into common and default. Naming the current walk function as rte_graph_model_rtc cause the default model is RTC(Run-to-completion). Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_pcap.c

[PATCH v4 03/15] graph: move node process into inline function

2023-03-29 Thread Zhirun Yan
Node process is a single and reusable block, move the code into an inline function. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_rtc.h | 20 ++--- lib/graph/rte_graph_worker_common.h | 33

[PATCH v4 04/15] graph: add get/set graph worker model APIs

2023-03-29 Thread Zhirun Yan
Add new get/set APIs to configure graph worker model which is used to determine which model will be chosen. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/meson.build | 1 + lib/graph/rte_graph_worker.c| 54

[PATCH v4 05/15] graph: introduce graph node core affinity API

2023-03-29 Thread Zhirun Yan
Add lcore_id for node to hold affinity core id and impl rte_graph_model_dispatch_lcore_affinity_set to set node affinity with specific lcore. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_private.h| 1 + lib/graph

[PATCH v4 06/15] graph: introduce graph bind unbind API

2023-03-29 Thread Zhirun Yan
Add lcore_id for graph to hold affinity core id where graph would run on. Add bind/unbind API to set/unset graph affinity attribute. lcore_id will be set as MAX by default, it means not enable this attribute. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan

[PATCH v4 07/15] graph: introduce graph clone API for other worker core

2023-03-29 Thread Zhirun Yan
This patch adds graph API for supporting to clone the graph object for a specified worker core. The new graph will also clone all nodes. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 110

[PATCH v4 08/15] graph: add struct for stream moving between cores

2023-03-29 Thread Zhirun Yan
Add graph_sched_wq_node to hold graph scheduling workqueue node. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 1 + lib/graph/graph_populate.c | 1 + lib/graph/graph_private.h | 12

[PATCH v4 09/15] graph: introduce stream moving cross cores

2023-03-29 Thread Zhirun Yan
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. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_private.h| 27 + lib/graph

[PATCH v4 10/15] graph: enable create and destroy graph scheduling workqueue

2023-03-29 Thread Zhirun Yan
This patch enables to create and destroy scheduling workqueue into common graph operations. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 9 + 1 file changed, 9 insertions(+) diff --git a/lib/graph/graph.c b/lib/graph

[PATCH v4 11/15] graph: introduce graph walk by cross-core dispatch

2023-03-29 Thread Zhirun Yan
queue first, then handle the local work queue. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_dispatch.h | 42 1 file changed, 42 insertions(+) diff --git a/lib/graph/rte_graph_model_dispatch.h b/lib

[PATCH v4 12/15] graph: enable graph multicore dispatch scheduler model

2023-03-29 Thread Zhirun Yan
This patch enables to chose new scheduler model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_worker.h | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/graph/rte_graph_worker.h b/lib/graph

[PATCH v4 13/15] graph: add stats for cross-core dispatching

2023-03-29 Thread Zhirun Yan
Add stats for cross-core dispatching scheduler if stats collection is enabled. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_debug.c | 6 +++ lib/graph/graph_stats.c | 74 +--- lib/graph

[PATCH v4 14/15] examples/l3fwd-graph: introduce multicore dispatch worker model

2023-03-29 Thread Zhirun Yan
,9)" -P --model="dispatch" Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- examples/l3fwd-graph/main.c | 237 +--- 1 file changed, 195 insertions(+), 42 deletions(-) diff --git a/examples/l3fwd-graph/main.c b/exa

[PATCH v4 15/15] doc: update multicore dispatch model in graph guides

2023-03-29 Thread Zhirun Yan
Update graph documentation to introduce new multicore dispatch model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- doc/guides/prog_guide/graph_lib.rst | 59 +++-- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a

[PATCH v5 00/15] graph enhancement for multi-core dispatch

2023-03-30 Thread Zhirun Yan
hoosing. We could run with new worker model by this: ./dpdk-l3fwd-graph -l 8,9,10,11 -n 4 -- -p 0x1 --config="(0,0,9)" -P --model="dispatch" References: https://static.sched.com/hosted_files/dpdkuserspace22/a6/graph%20introduce%20remote%20dispatch%20for%20mult-core%20scaling.pdf Zhirun

[PATCH v5 01/15] graph: rename rte_graph_work as common

2023-03-30 Thread Zhirun Yan
Rename rte_graph_work.h to rte_graph_work_common.h for supporting multiple graph worker model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- MAINTAINERS | 1 + lib/graph/graph_pcap.c

[PATCH v5 03/15] graph: move node process into inline function

2023-03-30 Thread Zhirun Yan
Node process is a single and reusable block, move the code into an inline function. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_rtc.h | 20 ++--- lib/graph/rte_graph_worker_common.h | 33

[PATCH v5 02/15] graph: split graph worker into common and default model

2023-03-30 Thread Zhirun Yan
To support multiple graph worker model, split graph into common and default. Naming the current walk function as rte_graph_model_rtc cause the default model is RTC(Run-to-completion). Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_pcap.c

[PATCH v5 04/15] graph: add get/set graph worker model APIs

2023-03-30 Thread Zhirun Yan
Add new get/set APIs to configure graph worker model which is used to determine which model will be chosen. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/meson.build | 1 + lib/graph/rte_graph_worker.c| 54

[PATCH v5 05/15] graph: introduce graph node core affinity API

2023-03-30 Thread Zhirun Yan
Add lcore_id for node to hold affinity core id and impl rte_graph_model_dispatch_lcore_affinity_set to set node affinity with specific lcore. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_private.h| 1 + lib/graph

[PATCH v5 06/15] graph: introduce graph bind unbind API

2023-03-30 Thread Zhirun Yan
Add lcore_id for graph to hold affinity core id where graph would run on. Add bind/unbind API to set/unset graph affinity attribute. lcore_id will be set as MAX by default, it means not enable this attribute. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan

[PATCH v5 07/15] graph: introduce graph clone API for other worker core

2023-03-30 Thread Zhirun Yan
This patch adds graph API for supporting to clone the graph object for a specified worker core. The new graph will also clone all nodes. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 110

[PATCH v5 08/15] graph: add struct for stream moving between cores

2023-03-30 Thread Zhirun Yan
Add graph_sched_wq_node to hold graph scheduling workqueue node. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 1 + lib/graph/graph_populate.c | 1 + lib/graph/graph_private.h | 12

[PATCH v5 09/15] graph: introduce stream moving cross cores

2023-03-30 Thread Zhirun Yan
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. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_private.h| 27 + lib/graph

[PATCH v5 10/15] graph: enable create and destroy graph scheduling workqueue

2023-03-30 Thread Zhirun Yan
This patch enables to create and destroy scheduling workqueue into common graph operations. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph.c | 9 + 1 file changed, 9 insertions(+) diff --git a/lib/graph/graph.c b/lib/graph

[PATCH v5 11/15] graph: introduce graph walk by cross-core dispatch

2023-03-30 Thread Zhirun Yan
queue first, then handle the local work queue. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_model_dispatch.h | 42 1 file changed, 42 insertions(+) diff --git a/lib/graph/rte_graph_model_dispatch.h b/lib

[PATCH v5 12/15] graph: enable graph multicore dispatch scheduler model

2023-03-30 Thread Zhirun Yan
This patch enables to chose new scheduler model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/rte_graph_worker.h | 9 - 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/graph/rte_graph_worker.h b/lib/graph

[PATCH v5 13/15] graph: add stats for cross-core dispatching

2023-03-30 Thread Zhirun Yan
Add stats for cross-core dispatching scheduler if stats collection is enabled. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- lib/graph/graph_debug.c | 6 +++ lib/graph/graph_stats.c | 74 +--- lib/graph

[PATCH v5 14/15] examples/l3fwd-graph: introduce multicore dispatch worker model

2023-03-30 Thread Zhirun Yan
,9)" -P --model="dispatch" Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- examples/l3fwd-graph/main.c | 236 +--- 1 file changed, 194 insertions(+), 42 deletions(-) diff --git a/examples/l3fwd-graph/main.c b/exa

[PATCH v5 15/15] doc: update multicore dispatch model in graph guides

2023-03-30 Thread Zhirun Yan
Update graph documentation to introduce new multicore dispatch model. Signed-off-by: Haiyue Wang Signed-off-by: Cunming Liang Signed-off-by: Zhirun Yan --- doc/guides/prog_guide/graph_lib.rst | 59 +++-- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a

  1   2   3   4   >