From: Chengwen Feng <chengwen.feng@linux.dev>
To: thomas@monjalon.net, konstantin.v.ananyev@yandex.ru
Cc: dev@dpdk.org, Chengwen Feng <fengchengwen@huawei.com>
Subject: [PATCH 015/227] graph: use NUMA node terminology
Date: Tue, 3 Nov 2026 22:49:33 +0800 [thread overview]
Message-ID: <20261103145306.487255-16-chengwen.feng@linux.dev> (raw)
In-Reply-To: <20261103145306.487255-1-chengwen.feng@linux.dev>
From: Chengwen Feng <fengchengwen@huawei.com>
Rename the numa_id fields of rte_graph_param,
rte_graph_cluster_stats_param and rte_graph (were socket_id and
socket), keeping the old names as deprecated union aliases, and
update in-tree users accordingly.
Also rename socket_id parameters, internal variables, dump
output and comments to the NUMA node terminology, and switch
internal calls to rte_zmalloc_numa(), rte_realloc_numa(),
rte_numa_id(), rte_lcore_to_numa_id() and RTE_NUMA_ID_ANY.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
app/graph/graph.c | 4 ++--
app/graph/l2fwd.c | 2 +-
app/graph/l3fwd.c | 10 +++++-----
app/test/test_graph.c | 6 +++---
app/test/test_graph_feature_arc.c | 2 +-
lib/graph/graph.c | 14 +++++++-------
lib/graph/graph_debug.c | 2 +-
lib/graph/graph_feature_arc.c | 4 ++--
lib/graph/graph_pcap.c | 2 +-
lib/graph/graph_populate.c | 4 ++--
lib/graph/graph_private.h | 4 ++--
lib/graph/graph_stats.c | 18 +++++++++---------
lib/graph/rte_graph.h | 21 ++++++++++++++++++---
lib/graph/rte_graph_model_mcore_dispatch.c | 4 ++--
lib/graph/rte_graph_worker_common.h | 10 +++++++++-
15 files changed, 65 insertions(+), 42 deletions(-)
diff --git a/app/graph/graph.c b/app/graph/graph.c
index 77f1e7cd71..5afed64421 100644
--- a/app/graph/graph.c
+++ b/app/graph/graph.c
@@ -218,7 +218,7 @@ graph_stats_print_to_file(void)
memset(&s_param, 0, sizeof(s_param));
s_param.f = fp;
- s_param.socket_id = SOCKET_ID_ANY;
+ s_param.numa_id = RTE_NUMA_ID_ANY;
s_param.graph_patterns = &pattern;
s_param.nb_graph_patterns = 1;
@@ -372,7 +372,7 @@ graph_stats_print(void)
/* Prepare stats object */
memset(&s_param, 0, sizeof(s_param));
s_param.f = stdout;
- s_param.socket_id = SOCKET_ID_ANY;
+ s_param.numa_id = RTE_NUMA_ID_ANY;
s_param.graph_patterns = &pattern;
s_param.nb_graph_patterns = 1;
diff --git a/app/graph/l2fwd.c b/app/graph/l2fwd.c
index 20894b64fe..3011c70fa4 100644
--- a/app/graph/l2fwd.c
+++ b/app/graph/l2fwd.c
@@ -65,7 +65,7 @@ l2fwd_pattern_configure(void)
}
graph_conf.nb_node_patterns = nb_patterns + i;
- graph_conf.socket_id = rte_lcore_to_socket_id(lcore_id);
+ graph_conf.numa_id = rte_lcore_to_numa_id(lcore_id);
snprintf(qconf->name, sizeof(qconf->name), "worker_%u",
lcore_id);
diff --git a/app/graph/l3fwd.c b/app/graph/l3fwd.c
index fe25e43da8..9dc84b7338 100644
--- a/app/graph/l3fwd.c
+++ b/app/graph/l3fwd.c
@@ -129,23 +129,23 @@ l3fwd_pattern_configure(void)
}
graph_conf.nb_node_patterns = nb_patterns + i;
- graph_conf.socket_id = rte_lcore_to_socket_id(lcore_id);
+ graph_conf.numa_id = rte_lcore_to_numa_id(lcore_id);
snprintf(qconf->name, sizeof(qconf->name), "worker_%u",
lcore_id);
if (ip4_lookup_m == IP4_LOOKUP_FIB) {
- rc = setup_fib(graph_conf.socket_id);
+ rc = setup_fib(graph_conf.numa_id);
if (rc < 0)
rte_exit(EXIT_FAILURE, "Unable to setup fib for socket %u\n",
- graph_conf.socket_id);
+ graph_conf.numa_id);
}
if (ip6_lookup_m == IP6_LOOKUP_FIB) {
- rc = setup_fib6(graph_conf.socket_id);
+ rc = setup_fib6(graph_conf.numa_id);
if (rc < 0)
rte_exit(EXIT_FAILURE, "Unable to setup fib6 for socket %u\n",
- graph_conf.socket_id);
+ graph_conf.numa_id);
}
graph_id = rte_graph_create(qconf->name, &graph_conf);
diff --git a/app/test/test_graph.c b/app/test/test_graph.c
index 042fc9d3a2..c082aab3a6 100644
--- a/app/test/test_graph.c
+++ b/app/test/test_graph.c
@@ -694,7 +694,7 @@ test_create_graph(void)
"test_node00-test_node33", "test_node00-dummy_node",
};
struct rte_graph_param gconf = {
- .socket_id = SOCKET_ID_ANY,
+ .numa_id = RTE_NUMA_ID_ANY,
.nb_node_patterns = 6,
.node_patterns = node_patterns_dummy,
};
@@ -764,7 +764,7 @@ test_graph_id_collisions(void)
{
static const char *node_patterns[] = {"test_node_source1", "test_node00"};
struct rte_graph_param gconf = {
- .socket_id = SOCKET_ID_ANY,
+ .numa_id = RTE_NUMA_ID_ANY,
.nb_node_patterns = 2,
.node_patterns = node_patterns,
};
@@ -1045,7 +1045,7 @@ test_print_stats(void)
/* Prepare stats object */
memset(&s_param, 0, sizeof(s_param));
s_param.f = stdout;
- s_param.socket_id = SOCKET_ID_ANY;
+ s_param.numa_id = RTE_NUMA_ID_ANY;
s_param.graph_patterns = &pattern;
s_param.nb_graph_patterns = 1;
s_param.fn = graph_cluster_stats_cb_t;
diff --git a/app/test/test_graph_feature_arc.c b/app/test/test_graph_feature_arc.c
index 1a4bdeee49..114268c85c 100644
--- a/app/test/test_graph_feature_arc.c
+++ b/app/test/test_graph_feature_arc.c
@@ -787,7 +787,7 @@ static int
create_graph(void)
{
struct rte_graph_param gconf = {
- .socket_id = SOCKET_ID_ANY,
+ .numa_id = RTE_NUMA_ID_ANY,
.nb_node_patterns = RTE_DIM(node_names_feature_arc),
.node_patterns = node_names_feature_arc,
};
diff --git a/lib/graph/graph.c b/lib/graph/graph.c
index 9789065150..a7ec046d96 100644
--- a/lib/graph/graph.c
+++ b/lib/graph/graph.c
@@ -359,7 +359,7 @@ rte_graph_model_mcore_dispatch_core_bind(rte_graph_t id, int lcore)
graph->lcore_id = lcore;
graph->graph->dispatch.lcore_id = graph->lcore_id;
- graph->socket = rte_lcore_to_socket_id(lcore);
+ graph->numa_id = rte_lcore_to_numa_id(lcore);
/* Rebuild source bitmap with only source nodes bound to this lcore */
graph_src_bitmap_rebuild(graph);
@@ -477,7 +477,7 @@ rte_graph_create(const char *name, struct rte_graph_param *prm)
graph_pcap_enable(prm->pcap_enable);
/* Initialize graph object */
- graph->socket = prm->socket_id;
+ graph->numa_id = prm->numa_id;
graph->src_node_count = src_node_count;
graph->node_count = graph_nodes_count(graph);
graph->id = graph_next_free_id();
@@ -596,7 +596,7 @@ graph_clone(struct graph *parent_graph, const char *name, struct rte_graph_param
graph->node_count = parent_graph->node_count;
graph->parent_id = parent_graph->id;
graph->lcore_id = parent_graph->lcore_id;
- graph->socket = parent_graph->socket;
+ graph->numa_id = parent_graph->numa_id;
graph->id = graph_next_free_id();
/* Allocate the Graph fast path memory and populate the data */
@@ -737,8 +737,8 @@ __rte_node_stream_alloc(struct rte_graph *graph, struct rte_node *node)
RTE_VERIFY(size != UINT16_MAX);
/* Allocate double amount of size to avoid immediate realloc */
size = RTE_MIN(UINT16_MAX, RTE_MAX(RTE_GRAPH_BURST_SIZE, size * 2));
- node->objs = rte_realloc_socket(node->objs, size * sizeof(void *),
- RTE_CACHE_LINE_SIZE, graph->socket);
+ node->objs = rte_realloc_numa(node->objs, size * sizeof(void *),
+ RTE_CACHE_LINE_SIZE, graph->numa_id);
RTE_VERIFY(node->objs);
node->size = size;
node->realloc_count++;
@@ -754,8 +754,8 @@ __rte_node_stream_alloc_size(struct rte_graph *graph, struct rte_node *node,
RTE_VERIFY(size != UINT16_MAX);
/* Allocate double amount of size to avoid immediate realloc */
size = RTE_MIN(UINT16_MAX, RTE_MAX(RTE_GRAPH_BURST_SIZE, req_size * 2));
- node->objs = rte_realloc_socket(node->objs, size * sizeof(void *),
- RTE_CACHE_LINE_SIZE, graph->socket);
+ node->objs = rte_realloc_numa(node->objs, size * sizeof(void *),
+ RTE_CACHE_LINE_SIZE, graph->numa_id);
RTE_VERIFY(node->objs);
node->size = size;
node->realloc_count++;
diff --git a/lib/graph/graph_debug.c b/lib/graph/graph_debug.c
index aa5cc241a7..89faf70e31 100644
--- a/lib/graph/graph_debug.c
+++ b/lib/graph/graph_debug.c
@@ -66,7 +66,7 @@ rte_graph_obj_dump(FILE *f, struct rte_graph *g, bool all)
fprintf(f, " id=%" PRIu32 "\n", g->id);
fprintf(f, " nb_nodes=%" PRId32 "\n", g->nb_nodes);
fprintf(f, " nb_sched_words=%" PRIu16 "\n", g->nb_sched_words);
- fprintf(f, " socket=%d\n", g->socket);
+ fprintf(f, " numa_id=%d\n", g->numa_id);
fprintf(f, " fence=0x%" PRIx64 "\n", g->fence);
fprintf(f, " nodes_start=0x%" PRIx32 "\n", g->nodes_start);
fprintf(f, " sched_table=%p\n", g->sched_table);
diff --git a/lib/graph/graph_feature_arc.c b/lib/graph/graph_feature_arc.c
index 823aad3e73..9fbf31507a 100644
--- a/lib/graph/graph_feature_arc.c
+++ b/lib/graph/graph_feature_arc.c
@@ -799,7 +799,7 @@ feature_arc_main_init(rte_graph_feature_arc_main_t **pfl, uint32_t max_feature_a
sz = sizeof(rte_graph_feature_arc_main_t) +
(sizeof(pm->feature_arcs[0]) * max_feature_arcs);
- mz = rte_memzone_reserve(FEATURE_ARC_MEMZONE_NAME, sz, SOCKET_ID_ANY, 0);
+ mz = rte_memzone_reserve(FEATURE_ARC_MEMZONE_NAME, sz, RTE_NUMA_ID_ANY, 0);
if (!mz) {
graph_err("memzone reserve failed for feature arc main");
return -1;
@@ -1260,7 +1260,7 @@ rte_graph_feature_arc_create(struct rte_graph_feature_arc_register *reg,
/* Calculate size of feature arc */
feature_arc_reg_calc_size(reg, &sz, &first_feat_off, &fdata_off, &feat_sz, &num_index);
- mz = rte_memzone_reserve(reg->arc_name, sz, SOCKET_ID_ANY, 0);
+ mz = rte_memzone_reserve(reg->arc_name, sz, RTE_NUMA_ID_ANY, 0);
if (!mz) {
graph_err("memzone reserve failed for arc: %s of size: %"PRIu64,
diff --git a/lib/graph/graph_pcap.c b/lib/graph/graph_pcap.c
index 78859ec2d4..e4b3a8f78e 100644
--- a/lib/graph/graph_pcap.c
+++ b/lib/graph/graph_pcap.c
@@ -147,7 +147,7 @@ graph_pcap_mp_init(void)
pkt_mp = rte_pktmbuf_pool_create_by_ops(GRAPH_PCAP_PKT_POOL,
IOV_MAX + RTE_GRAPH_BURST_SIZE, 0, 0,
rte_pcapng_mbuf_size(RTE_MBUF_DEFAULT_BUF_SIZE),
- SOCKET_ID_ANY, "ring_mp_mc");
+ RTE_NUMA_ID_ANY, "ring_mp_mc");
if (pkt_mp == NULL) {
graph_err("Cannot create mempool for graph pcap capture.");
return -1;
diff --git a/lib/graph/graph_populate.c b/lib/graph/graph_populate.c
index 5c6829a7c7..f5f8a78b57 100644
--- a/lib/graph/graph_populate.c
+++ b/lib/graph/graph_populate.c
@@ -74,7 +74,7 @@ graph_header_populate(struct graph *_graph)
graph->pending = RTE_PTR_ADD(graph, _graph->pending_off);
graph->src_pending = RTE_PTR_ADD(graph, _graph->src_pending_off);
graph->nodes_start = _graph->nodes_start;
- graph->socket = _graph->socket;
+ graph->numa_id = _graph->numa_id;
graph->id = _graph->id;
memcpy(graph->name, _graph->name, RTE_GRAPH_NAMESIZE);
graph->fence = RTE_GRAPH_FENCE;
@@ -291,7 +291,7 @@ graph_fp_mem_create(struct graph *graph)
size_t sz;
sz = graph_fp_mem_calc_size(graph);
- mz = rte_memzone_reserve(graph->name, sz, graph->socket, 0);
+ mz = rte_memzone_reserve(graph->name, sz, graph->numa_id, 0);
if (mz == NULL)
SET_ERR_JMP(ENOMEM, fail, "Memzone %s reserve failed",
graph->name);
diff --git a/lib/graph/graph_private.h b/lib/graph/graph_private.h
index 6b986ea10b..b38c632ea5 100644
--- a/lib/graph/graph_private.h
+++ b/lib/graph/graph_private.h
@@ -124,8 +124,8 @@ struct graph {
/**< Lcore identifier where the graph prefer to run on. Used for mcore dispatch model. */
size_t mem_sz;
/**< Memory size of the graph. */
- int socket;
- /**< Socket identifier where memory is allocated. */
+ int numa_id;
+ /** NUMA node identifier where memory is allocated. */
uint64_t num_pkt_to_capture;
/**< Number of packets to be captured per core. */
char pcap_filename[RTE_GRAPH_PCAP_FILE_SZ];
diff --git a/lib/graph/graph_stats.c b/lib/graph/graph_stats.c
index b87b5707f7..dc994392ab 100644
--- a/lib/graph/graph_stats.c
+++ b/lib/graph/graph_stats.c
@@ -34,7 +34,7 @@ struct __rte_cache_aligned rte_graph_cluster_stats {
rte_graph_cluster_stats_cb_t fn;
uint32_t cluster_node_size; /* Size of struct cluster_node */
rte_node_t max_nodes;
- int socket_id;
+ int numa_id;
bool dispatch;
void *cookie;
@@ -219,7 +219,7 @@ stats_mem_init(struct cluster *cluster,
{
struct rte_graph_cluster_stats *stats;
rte_graph_cluster_stats_cb_t fn;
- int socket_id = prm->socket_id;
+ int numa_id = prm->numa_id;
uint32_t cluster_node_size;
uint32_t max_nodes;
@@ -242,13 +242,13 @@ stats_mem_init(struct cluster *cluster,
cluster_node_size += cluster->nb_graphs * sizeof(struct rte_node *);
cluster_node_size = RTE_ALIGN(cluster_node_size, RTE_CACHE_LINE_SIZE);
- stats = rte_zmalloc_socket(NULL, sizeof(struct rte_graph_cluster_stats) +
- max_nodes * cluster_node_size, 0, socket_id);
+ stats = rte_zmalloc_numa(NULL, sizeof(struct rte_graph_cluster_stats) +
+ max_nodes * cluster_node_size, 0, numa_id);
if (stats) {
stats->fn = fn;
stats->cluster_node_size = cluster_node_size;
stats->max_nodes = 0;
- stats->socket_id = socket_id;
+ stats->numa_id = numa_id;
stats->cookie = prm->cookie;
}
@@ -294,16 +294,16 @@ stats_mem_populate(struct rte_graph_cluster_stats *stats,
cluster->nodes[cluster->nb_nodes++] = node;
if (graph_node->node->xstats) {
cluster->stat.xstat_cntrs = graph_node->node->xstats->nb_xstats;
- cluster->stat.xstat_count = rte_zmalloc_socket(NULL,
+ cluster->stat.xstat_count = rte_zmalloc_numa(NULL,
sizeof(uint64_t) * graph_node->node->xstats->nb_xstats,
- RTE_CACHE_LINE_SIZE, stats->socket_id);
+ RTE_CACHE_LINE_SIZE, stats->numa_id);
if (cluster->stat.xstat_count == NULL)
SET_ERR_JMP(ENOMEM, err, "Failed to allocate memory node %s graph %s",
graph_node->node->name, graph->name);
- cluster->stat.xstat_desc = rte_zmalloc_socket(NULL,
+ cluster->stat.xstat_desc = rte_zmalloc_numa(NULL,
RTE_NODE_XSTAT_DESC_SIZE * graph_node->node->xstats->nb_xstats,
- RTE_CACHE_LINE_SIZE, stats->socket_id);
+ RTE_CACHE_LINE_SIZE, stats->numa_id);
if (cluster->stat.xstat_desc == NULL) {
rte_free(cluster->stat.xstat_count);
SET_ERR_JMP(ENOMEM, err, "Failed to allocate memory node %s graph %s",
diff --git a/lib/graph/rte_graph.h b/lib/graph/rte_graph.h
index b5eb5d820e..b80e0c775b 100644
--- a/lib/graph/rte_graph.h
+++ b/lib/graph/rte_graph.h
@@ -166,7 +166,15 @@ typedef void (*packets_enqueued_cb)(struct rte_graph *graph, uint64_t cb_priv);
* @see rte_graph_create()
*/
struct rte_graph_param {
- int socket_id; /**< Socket id where memory is allocated. */
+ union {
+ /** NUMA node ID where memory is allocated. */
+ int numa_id;
+ /**
+ * Deprecated alias of numa_id.
+ */
+ __rte_deprecated_msg("use numa_id")
+ int socket_id;
+ };
uint16_t nb_node_patterns; /**< Number of node patterns. */
const char **node_patterns;
/**< Array of node patterns based on shell pattern. */
@@ -194,8 +202,15 @@ struct rte_graph_param {
* @see rte_graph_cluster_stats_create()
*/
struct rte_graph_cluster_stats_param {
- int socket_id;
- /**< Socket id where memory is allocated */
+ union {
+ /** NUMA node ID where memory is allocated */
+ int numa_id;
+ /**
+ * Deprecated alias of numa_id.
+ */
+ __rte_deprecated_msg("use numa_id")
+ int socket_id;
+ };
rte_graph_cluster_stats_cb_t fn;
/**< Stats print callback function. NULL value allowed, in that case,
* default print stat function used.
diff --git a/lib/graph/rte_graph_model_mcore_dispatch.c b/lib/graph/rte_graph_model_mcore_dispatch.c
index 706b5469f0..ce0538f5b4 100644
--- a/lib/graph/rte_graph_model_mcore_dispatch.c
+++ b/lib/graph/rte_graph_model_mcore_dispatch.c
@@ -25,7 +25,7 @@ graph_sched_wq_create(struct graph *_graph, struct graph *_parent_graph,
if (!rte_is_power_of_2(wq_size))
flags |= RING_F_EXACT_SZ;
- graph->dispatch.wq = rte_ring_create(graph->name, wq_size, graph->socket,
+ graph->dispatch.wq = rte_ring_create(graph->name, wq_size, graph->numa_id,
flags);
if (graph->dispatch.wq == NULL)
SET_ERR_JMP(EIO, fail, "Failed to allocate graph WQ");
@@ -37,7 +37,7 @@ graph_sched_wq_create(struct graph *_graph, struct graph *_parent_graph,
graph->dispatch.mp = rte_mempool_create(graph->name, wq_size,
sizeof(struct graph_mcore_dispatch_wq_node),
0, 0, NULL, NULL, NULL, NULL,
- graph->socket, MEMPOOL_F_SP_PUT);
+ graph->numa_id, MEMPOOL_F_SP_PUT);
if (graph->dispatch.mp == NULL)
SET_ERR_JMP(EIO, fail_mp,
"Failed to allocate graph WQ schedule entry");
diff --git a/lib/graph/rte_graph_worker_common.h b/lib/graph/rte_graph_worker_common.h
index 7a7da1c34f..02990a4bab 100644
--- a/lib/graph/rte_graph_worker_common.h
+++ b/lib/graph/rte_graph_worker_common.h
@@ -74,7 +74,15 @@ struct __rte_cache_aligned rte_graph {
SLIST_ENTRY(rte_graph) next; /* The next for rte_graph list */
/* End of Fast path area.*/
rte_graph_t id; /**< Graph identifier. */
- int socket; /**< Socket ID where memory is allocated. */
+ union {
+ /** NUMA node ID where memory is allocated. */
+ int numa_id;
+ /**
+ * Deprecated alias of numa_id.
+ */
+ __rte_deprecated_msg("use numa_id")
+ int socket;
+ };
char name[RTE_GRAPH_NAMESIZE]; /**< Name of the graph. */
bool pcap_enable; /**< Pcap trace enabled. */
/** Number of packets captured per core. */
--
2.55.0
next prev parent reply other threads:[~2026-11-03 14:55 UTC|newest]
Thread overview: 235+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 14:49 [PATCH 000/227] use NUMA node terminology across the tree Chengwen Feng
2026-11-03 14:49 ` [PATCH 001/227] eal: add NUMA-aware APIs Chengwen Feng
2026-11-04 7:33 ` Stephen Hemminger
2026-11-04 8:53 ` fengchengwen
2026-11-03 14:49 ` [PATCH 002/227] mempool: use NUMA node terminology Chengwen Feng
2026-11-03 14:49 ` [PATCH 003/227] ring: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 004/227] hash: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 005/227] member: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 006/227] ethdev: rename device socket API to NUMA node API Chengwen Feng
2026-11-03 14:49 ` [PATCH 007/227] cryptodev: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 008/227] compressdev: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 009/227] rawdev: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 010/227] mldev: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 011/227] bbdev: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 012/227] eventdev: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 013/227] acl: use NUMA node terminology Chengwen Feng
2026-11-03 14:49 ` [PATCH 014/227] ipsec: " Chengwen Feng
2026-11-03 14:49 ` Chengwen Feng [this message]
2026-11-03 14:49 ` [PATCH 016/227] gro: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 017/227] fib: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 018/227] rib: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 019/227] lpm: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 020/227] efd: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 021/227] ip_frag: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 022/227] node: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 023/227] distributor: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 024/227] reorder: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 025/227] stack: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 026/227] regexdev: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 027/227] metrics: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 028/227] mbuf: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 029/227] timer: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 030/227] table: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 031/227] rcu: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 032/227] pdump: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 033/227] pdcp: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 034/227] latencystats: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 035/227] gpudev: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 036/227] dmadev: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 037/227] dispatcher: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 038/227] vhost: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 039/227] baseband/acc: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 040/227] baseband/fpga_5gnr_fec: " Chengwen Feng
2026-11-03 14:49 ` [PATCH 041/227] baseband/fpga_lte_fec: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 042/227] baseband/null: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 043/227] baseband/turbo_sw: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 044/227] bus/auxiliary: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 045/227] bus/dpaa: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 046/227] bus/fslmc: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 047/227] bus/ifpga: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 048/227] bus/pci: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 049/227] bus/platform: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 050/227] bus/vdev: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 051/227] bus/vmbus: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 052/227] common/cnxk: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 053/227] common/nitrox: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 054/227] common/zsda: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 055/227] compress/isal: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 056/227] compress/mlx5: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 057/227] compress/nitrox: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 058/227] compress/octeontx: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 059/227] compress/uadk: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 060/227] compress/zlib: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 061/227] compress/zsda: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 062/227] crypto/armv8: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 063/227] crypto/bcmfs: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 064/227] crypto/caam_jr: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 065/227] crypto/ccp: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 066/227] crypto/cnxk: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 067/227] crypto/dpaa2_sec: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 068/227] crypto/dpaa_sec: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 069/227] crypto/ionic: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 070/227] crypto/ipsec_mb: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 071/227] crypto/mlx5: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 072/227] crypto/mvsam: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 073/227] crypto/nitrox: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 074/227] crypto/null: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 075/227] crypto/octeontx: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 076/227] crypto/openssl: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 077/227] crypto/scheduler: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 078/227] crypto/uadk: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 079/227] crypto/virtio: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 080/227] crypto/zsda: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 081/227] dma/ae4dma: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 082/227] dma/cnxk: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 083/227] dma/dpaa: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 084/227] dma/dpaa2: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 085/227] dma/hisi_acc: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 086/227] dma/idxd: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 087/227] dma/imx_edma5: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 088/227] dma/odm: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 089/227] dma/skeleton: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 090/227] event/cnxk: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 091/227] event/dlb2: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 092/227] event/dpaa: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 093/227] event/dpaa2: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 094/227] event/dsw: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 095/227] event/octeontx: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 096/227] event/opdl: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 097/227] event/skeleton: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 098/227] event/sw: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 099/227] mempool/bucket: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 100/227] mempool/cnxk: " Chengwen Feng
2026-11-03 14:50 ` [PATCH 101/227] ml/cnxk: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 102/227] net/af_packet: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 103/227] net/af_xdp: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 104/227] net/ark: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 105/227] net/atlantic: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 106/227] net/avp: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 107/227] net/axgbe: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 108/227] net/bnx2x: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 109/227] net/bnxt: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 110/227] net/bonding: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 111/227] net/cnxk: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 112/227] net/cxgbe: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 113/227] net/dpaa: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 114/227] net/dpaa2: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 115/227] net/ena: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 116/227] net/enetc: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 117/227] net/enetfec: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 118/227] net/enic: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 119/227] net/failsafe: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 120/227] net/gve: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 121/227] net/hinic: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 122/227] net/hinic3: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 123/227] net/hns3: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 124/227] net/intel: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 125/227] net/ionic: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 126/227] net/mana: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 127/227] net/memif: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 128/227] net/mlx4: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 129/227] net/mvneta: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 130/227] net/mvpp2: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 131/227] net/nbl: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 132/227] net/netvsc: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 133/227] net/nfb: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 134/227] net/nfp: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 135/227] net/ngbe: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 136/227] net/ntnic: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 137/227] net/null: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 138/227] net/octeon_ep: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 139/227] net/octeontx: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 140/227] net/pcap: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 141/227] net/pfe: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 142/227] net/qede: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 143/227] net/r8169: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 144/227] net/ring: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 145/227] net/rnp: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 146/227] net/sfc: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 147/227] net/softnic: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 148/227] net/sxe2: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 149/227] net/tap: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 150/227] net/thunderx: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 151/227] net/txgbe: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 152/227] net/vhost: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 153/227] net/virtio: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 154/227] net/vmxnet3: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 155/227] net/xsc: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 156/227] net/zxdh: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 157/227] raw/cnxk_bphy: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 158/227] raw/cnxk_gpio: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 159/227] raw/cnxk_rvu_lf: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 160/227] raw/dpaa2_cmdif: " Chengwen Feng
2026-11-03 14:51 ` [PATCH 161/227] raw/gdtc: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 162/227] raw/ifpga: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 163/227] raw/ntb: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 164/227] raw/skeleton: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 165/227] regex/cn9k: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 166/227] regex/mlx5: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 167/227] vdpa/mlx5: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 168/227] drivers: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 169/227] " Chengwen Feng
2026-11-03 14:52 ` [PATCH 170/227] test: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 171/227] app/testpmd: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 172/227] app/proc-info: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 173/227] app/graph: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 174/227] app/pdump: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 175/227] app/dumpcap: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 176/227] app/test-mldev: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 177/227] app/test-eventdev: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 178/227] app/test-compress-perf: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 179/227] app/test-crypto-perf: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 180/227] app/test-bbdev: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 181/227] app/test-security-perf: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 182/227] app/test-regex: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 183/227] app/test-flow-perf: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 184/227] examples/bbdev_app: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 185/227] examples/bond: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 186/227] examples/distributor: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 187/227] examples/dma: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 188/227] examples/ethtool: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 189/227] examples/eventdev_pipeline: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 190/227] examples/fips_validation: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 191/227] examples/flow_filtering: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 192/227] examples/ip_fragmentation: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 193/227] examples/ip_reassembly: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 194/227] examples/ipsec-secgw: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 195/227] examples/ipv4_multicast: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 196/227] examples/l2fwd: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 197/227] examples/l2fwd-cat: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 198/227] examples/l2fwd-crypto: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 199/227] examples/l2fwd-event: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 200/227] examples/l2fwd-jobstats: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 201/227] examples/l2fwd-keepalive: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 202/227] examples/l2fwd-macsec: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 203/227] examples/l3fwd: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 204/227] examples/l3fwd-graph: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 205/227] examples/l3fwd-power: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 206/227] examples/link_status_interrupt: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 207/227] examples/multi_process: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 208/227] examples/ntb: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 209/227] examples/packet_ordering: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 210/227] examples/pipeline: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 211/227] examples/ptpclient: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 212/227] examples/ptp_tap_relay_sw: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 213/227] examples/qos_meter: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 214/227] examples/qos_sched: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 215/227] examples/rxtx_callbacks: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 216/227] examples/server_node_efd: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 217/227] examples/skeleton: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 218/227] examples/vhost: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 219/227] examples/vhost_crypto: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 220/227] examples/vm_power_manager: " Chengwen Feng
2026-11-03 14:52 ` [PATCH 221/227] examples/vmdq: " Chengwen Feng
2026-11-03 14:53 ` [PATCH 222/227] examples/vmdq_dcb: " Chengwen Feng
2026-11-03 14:53 ` [PATCH 223/227] eal: deprecate legacy socket API aliases Chengwen Feng
2026-11-03 14:53 ` [PATCH 224/227] doc: use NUMA node terminology Chengwen Feng
2026-11-03 14:53 ` [PATCH 225/227] test-dma-perf: " Chengwen Feng
2026-11-03 14:53 ` [PATCH 226/227] test/memzone: fix NUMA node terminology rename Chengwen Feng
2026-11-03 14:53 ` [PATCH 227/227] examples: fix NUMA node terminology residue Chengwen Feng
2026-11-03 16:16 ` [PATCH 000/227] use NUMA node terminology across the tree Aaron Conole
2026-11-04 2:05 ` fengchengwen
2026-11-04 7:34 ` Stephen Hemminger
2026-11-04 8:55 ` fengchengwen
2026-11-04 9:29 ` David Marchand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261103145306.487255-16-chengwen.feng@linux.dev \
--to=chengwen.feng@linux.dev \
--cc=dev@dpdk.org \
--cc=fengchengwen@huawei.com \
--cc=konstantin.v.ananyev@yandex.ru \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox