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 020/227] efd: use NUMA node terminology
Date: Tue, 3 Nov 2026 22:49:38 +0800 [thread overview]
Message-ID: <20261103145306.487255-21-chengwen.feng@linux.dev> (raw)
In-Reply-To: <20261103145306.487255-1-chengwen.feng@linux.dev>
From: Chengwen Feng <fengchengwen@huawei.com>
Rename socket_id parameters, internal variables and comments to
the NUMA node terminology, and switch internal calls to
rte_zmalloc_numa(), rte_numa_id() and RTE_NUMA_ID_ANY.
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
---
lib/efd/rte_efd.c | 104 +++++++++++++++++++++++-----------------------
lib/efd/rte_efd.h | 38 ++++++++---------
2 files changed, 71 insertions(+), 71 deletions(-)
diff --git a/lib/efd/rte_efd.c b/lib/efd/rte_efd.c
index 4dfc0ec9a4..a578050f59 100644
--- a/lib/efd/rte_efd.c
+++ b/lib/efd/rte_efd.c
@@ -307,8 +307,8 @@ efd_get_bin_id(const struct rte_efd_table * const table,
*
* @param table
* EFD table to reference
- * @param socket_id
- * Socket ID to use to look up existing values (ideally caller's socket id)
+ * @param numa_id
+ * NUMA node ID to use to look up existing values (ideally caller's NUMA node)
* @param chunk_id
* Chunk ID of bin to look up
* @param bin_id
@@ -319,10 +319,10 @@ efd_get_bin_id(const struct rte_efd_table * const table,
*/
static inline uint8_t
efd_get_choice(const struct rte_efd_table * const table,
- const unsigned int socket_id, const uint32_t chunk_id,
+ const unsigned int numa_id, const uint32_t chunk_id,
const uint32_t bin_id)
{
- struct efd_online_chunk *chunk = &table->chunks[socket_id][chunk_id];
+ struct efd_online_chunk *chunk = &table->chunks[numa_id][chunk_id];
/*
* Grab the chunk (byte) that contains the choices
@@ -501,12 +501,12 @@ efd_search_hash(struct rte_efd_table * const table,
RTE_EXPORT_SYMBOL(rte_efd_create)
struct rte_efd_table *
rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
- uint64_t online_cpu_socket_bitmask, uint8_t offline_cpu_socket)
+ uint64_t online_cpu_numa_bitmask, uint8_t offline_cpu_numa)
{
struct rte_efd_table *table = NULL;
uint8_t *key_array = NULL;
uint32_t num_chunks, num_chunks_shift;
- uint8_t socket_id;
+ uint8_t numa_id;
struct rte_efd_list *efd_list = NULL;
struct rte_tailq_entry *te;
uint64_t offline_table_size;
@@ -516,8 +516,8 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
efd_list = RTE_TAILQ_CAST(rte_efd_tailq.head, rte_efd_list);
- if (online_cpu_socket_bitmask == 0) {
- EFD_LOG(ERR, "At least one CPU socket must be enabled in the bitmask");
+ if (online_cpu_numa_bitmask == 0) {
+ EFD_LOG(ERR, "At least one CPU NUMA node must be enabled in the bitmask");
rte_errno = EINVAL;
return NULL;
}
@@ -574,20 +574,20 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
}
/* Create a new EFD table management structure */
- table = rte_zmalloc_socket(NULL,
+ table = rte_zmalloc_numa(NULL,
sizeof(struct rte_efd_table),
RTE_CACHE_LINE_SIZE,
- offline_cpu_socket);
+ offline_cpu_numa);
if (table == NULL) {
EFD_LOG(ERR, "Allocating EFD table management structure"
- " on socket %u failed",
- offline_cpu_socket);
+ " on NUMA node %u failed",
+ offline_cpu_numa);
goto error_unlock_exit;
}
EFD_LOG(DEBUG, "Allocated EFD table management structure "
- "on socket %u", offline_cpu_socket);
+ "on socket %u", offline_cpu_numa);
table->max_num_rules = num_chunks * EFD_TARGET_CHUNK_MAX_NUM_RULES;
table->num_rules = 0;
@@ -596,14 +596,14 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
table->key_len = key_len;
/* key_array */
- key_array = rte_zmalloc_socket(NULL,
+ key_array = rte_zmalloc_numa(NULL,
table->max_num_rules * table->key_len,
RTE_CACHE_LINE_SIZE,
- offline_cpu_socket);
+ offline_cpu_numa);
if (key_array == NULL) {
EFD_LOG(ERR, "Allocating key array"
- " on socket %u failed",
- offline_cpu_socket);
+ " on NUMA node %u failed",
+ offline_cpu_numa);
goto error_unlock_exit;
}
table->keys = key_array;
@@ -614,8 +614,8 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
num_chunks, table->max_num_rules);
/* Make sure all the allocatable table pointers are NULL initially */
- for (socket_id = 0; socket_id < RTE_MAX_NUMA_NODES; socket_id++)
- table->chunks[socket_id] = NULL;
+ for (numa_id = 0; numa_id < RTE_MAX_NUMA_NODES; numa_id++)
+ table->chunks[numa_id] = NULL;
table->offline_chunks = NULL;
/*
@@ -625,23 +625,23 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
uint64_t online_table_size = num_chunks * sizeof(struct efd_online_chunk) +
EFD_NUM_CHUNK_PADDING_BYTES;
- for (socket_id = 0; socket_id < RTE_MAX_NUMA_NODES; socket_id++) {
- if ((online_cpu_socket_bitmask >> socket_id) & 0x01) {
+ for (numa_id = 0; numa_id < RTE_MAX_NUMA_NODES; numa_id++) {
+ if ((online_cpu_numa_bitmask >> numa_id) & 0x01) {
/*
* Allocate all of the EFD table chunks (the online portion)
* as a continuous block
*/
- table->chunks[socket_id] =
- rte_zmalloc_socket(
+ table->chunks[numa_id] =
+ rte_zmalloc_numa(
NULL,
online_table_size,
RTE_CACHE_LINE_SIZE,
- socket_id);
- if (table->chunks[socket_id] == NULL) {
+ numa_id);
+ if (table->chunks[numa_id] == NULL) {
EFD_LOG(ERR,
"Allocating EFD online table on "
"socket %u failed",
- socket_id);
+ numa_id);
goto error_unlock_exit;
}
EFD_LOG(DEBUG,
@@ -650,7 +650,7 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
online_table_size,
(float) online_table_size /
(1024.0F * 1024.0F),
- socket_id);
+ numa_id);
}
}
@@ -685,13 +685,13 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
*/
offline_table_size = num_chunks * sizeof(struct efd_offline_chunk_rules);
table->offline_chunks =
- rte_zmalloc_socket(NULL,
+ rte_zmalloc_numa(NULL,
offline_table_size,
RTE_CACHE_LINE_SIZE,
- offline_cpu_socket);
+ offline_cpu_numa);
if (table->offline_chunks == NULL) {
EFD_LOG(ERR, "Allocating EFD offline table on socket %u "
- "failed", offline_cpu_socket);
+ "failed", offline_cpu_numa);
goto error_unlock_exit;
}
@@ -699,7 +699,7 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
"Allocated EFD offline table of size %"PRIu64" bytes "
" (%.2f MB) on socket %u", offline_table_size,
(float) offline_table_size / (1024.0F * 1024.0F),
- offline_cpu_socket);
+ offline_cpu_numa);
te->data = (void *) table;
TAILQ_INSERT_TAIL(efd_list, te, next);
@@ -711,7 +711,7 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
/* Create ring (Dummy slot index is not enqueued) */
r = rte_ring_create(ring_name, rte_align32pow2(table->max_num_rules),
- offline_cpu_socket, 0);
+ offline_cpu_numa, 0);
if (r == NULL) {
EFD_LOG(ERR, "ring creation failed: %s", rte_strerror(rte_errno));
rte_efd_free(table);
@@ -764,15 +764,15 @@ RTE_EXPORT_SYMBOL(rte_efd_free)
void
rte_efd_free(struct rte_efd_table *table)
{
- uint8_t socket_id;
+ uint8_t numa_id;
struct rte_efd_list *efd_list;
struct rte_tailq_entry *te, *temp;
if (table == NULL)
return;
- for (socket_id = 0; socket_id < RTE_MAX_NUMA_NODES; socket_id++)
- rte_free(table->chunks[socket_id]);
+ for (numa_id = 0; numa_id < RTE_MAX_NUMA_NODES; numa_id++)
+ rte_free(table->chunks[numa_id]);
efd_list = RTE_TAILQ_CAST(rte_efd_tailq.head, rte_efd_list);
rte_mcfg_tailq_write_lock();
@@ -800,7 +800,7 @@ rte_efd_free(struct rte_efd_table *table)
*
* @param table
* EFD table to reference
- * @param socket_id
+ * @param numa_id
* Socket ID to use to lookup existing values (ideally caller's socket id)
* @param chunk_id
* Chunk index to update
@@ -814,13 +814,13 @@ rte_efd_free(struct rte_efd_table *table)
* Previously computed updated chunk/group entry
*/
static inline void
-efd_apply_update(struct rte_efd_table * const table, const unsigned int socket_id,
+efd_apply_update(struct rte_efd_table * const table, const unsigned int numa_id,
const uint32_t chunk_id, const uint32_t group_id,
const uint32_t bin_id, const uint8_t new_bin_choice,
const struct efd_online_group_entry * const new_group_entry)
{
int i;
- struct efd_online_chunk *chunk = &table->chunks[socket_id][chunk_id];
+ struct efd_online_chunk *chunk = &table->chunks[numa_id][chunk_id];
uint8_t bin_index = bin_id / EFD_CHUNK_NUM_BIN_TO_GROUP_SETS;
/*
@@ -939,7 +939,7 @@ revert_groups(struct efd_offline_group_rules *previous_group,
*
* @param table
* EFD table to reference
- * @param socket_id
+ * @param numa_id
* Socket ID to use to lookup existing values (ideally caller's socket id)
* @param key
* Key to insert
@@ -976,7 +976,7 @@ revert_groups(struct efd_offline_group_rules *previous_group,
*/
static inline int
efd_compute_update(struct rte_efd_table * const table,
- const unsigned int socket_id, const void *key,
+ const unsigned int numa_id, const void *key,
const efd_value_t value, uint32_t * const chunk_id,
uint32_t * const group_id, uint32_t * const bin_id,
uint8_t * const new_bin_choice,
@@ -995,7 +995,7 @@ efd_compute_update(struct rte_efd_table * const table,
&table->offline_chunks[*chunk_id];
struct efd_offline_group_rules *new_group;
- uint8_t current_choice = efd_get_choice(table, socket_id,
+ uint8_t current_choice = efd_get_choice(table, numa_id,
*chunk_id, *bin_id);
uint32_t current_group_id = efd_bin_to_group[current_choice][*bin_id];
struct efd_offline_group_rules * const current_group =
@@ -1179,14 +1179,14 @@ efd_compute_update(struct rte_efd_table * const table,
RTE_EXPORT_SYMBOL(rte_efd_update)
int
-rte_efd_update(struct rte_efd_table * const table, const unsigned int socket_id,
+rte_efd_update(struct rte_efd_table * const table, const unsigned int numa_id,
const void *key, const efd_value_t value)
{
uint32_t chunk_id = 0, group_id = 0, bin_id = 0;
uint8_t new_bin_choice = 0;
struct efd_online_group_entry entry = {{0}};
- int status = efd_compute_update(table, socket_id, key, value,
+ int status = efd_compute_update(table, numa_id, key, value,
&chunk_id, &group_id, &bin_id,
&new_bin_choice, &entry);
@@ -1196,14 +1196,14 @@ rte_efd_update(struct rte_efd_table * const table, const unsigned int socket_id,
if (status == RTE_EFD_UPDATE_FAILED)
return status;
- efd_apply_update(table, socket_id, chunk_id, group_id, bin_id,
+ efd_apply_update(table, numa_id, chunk_id, group_id, bin_id,
new_bin_choice, &entry);
return status;
}
RTE_EXPORT_SYMBOL(rte_efd_delete)
int
-rte_efd_delete(struct rte_efd_table * const table, const unsigned int socket_id,
+rte_efd_delete(struct rte_efd_table * const table, const unsigned int numa_id,
const void *key, efd_value_t * const prev_value)
{
unsigned int i;
@@ -1215,7 +1215,7 @@ rte_efd_delete(struct rte_efd_table * const table, const unsigned int socket_id,
struct efd_offline_chunk_rules * const chunk =
&table->offline_chunks[chunk_id];
- uint8_t current_choice = efd_get_choice(table, socket_id,
+ uint8_t current_choice = efd_get_choice(table, numa_id,
chunk_id, bin_id);
uint32_t current_group_id = efd_bin_to_group[current_choice][bin_id];
struct efd_offline_group_rules * const current_group =
@@ -1321,16 +1321,16 @@ efd_lookup_internal(const struct efd_online_group_entry * const group,
RTE_EXPORT_SYMBOL(rte_efd_lookup)
efd_value_t
rte_efd_lookup(const struct rte_efd_table * const table,
- const unsigned int socket_id, const void *key)
+ const unsigned int numa_id, const void *key)
{
uint32_t chunk_id, group_id, bin_id;
uint8_t bin_choice;
const struct efd_online_group_entry *group;
- const struct efd_online_chunk * const chunks = table->chunks[socket_id];
+ const struct efd_online_chunk * const chunks = table->chunks[numa_id];
/* Determine the chunk and group location for the given key */
efd_compute_ids(table, key, &chunk_id, &bin_id);
- bin_choice = efd_get_choice(table, socket_id, chunk_id, bin_id);
+ bin_choice = efd_get_choice(table, numa_id, chunk_id, bin_id);
group_id = efd_bin_to_group[bin_choice][bin_id];
group = &chunks[chunk_id].groups[group_id];
@@ -1342,7 +1342,7 @@ rte_efd_lookup(const struct rte_efd_table * const table,
RTE_EXPORT_SYMBOL(rte_efd_lookup_bulk)
void rte_efd_lookup_bulk(const struct rte_efd_table * const table,
- const unsigned int socket_id, const int num_keys,
+ const unsigned int numa_id, const int num_keys,
const void **key_list, efd_value_t * const value_list)
{
int i;
@@ -1352,7 +1352,7 @@ void rte_efd_lookup_bulk(const struct rte_efd_table * const table,
uint32_t group_id_list[RTE_EFD_BURST_MAX];
struct efd_online_group_entry *group;
- struct efd_online_chunk *chunks = table->chunks[socket_id];
+ struct efd_online_chunk *chunks = table->chunks[numa_id];
for (i = 0; i < num_keys; i++) {
efd_compute_ids(table, key_list[i], &chunk_id_list[i],
@@ -1361,7 +1361,7 @@ void rte_efd_lookup_bulk(const struct rte_efd_table * const table,
}
for (i = 0; i < num_keys; i++) {
- bin_choice_list[i] = efd_get_choice(table, socket_id,
+ bin_choice_list[i] = efd_get_choice(table, numa_id,
chunk_id_list[i], bin_id_list[i]);
group_id_list[i] =
efd_bin_to_group[bin_choice_list[i]][bin_id_list[i]];
diff --git a/lib/efd/rte_efd.h b/lib/efd/rte_efd.h
index 89cb4a2483..c92e124b4d 100644
--- a/lib/efd/rte_efd.h
+++ b/lib/efd/rte_efd.h
@@ -117,7 +117,7 @@ typedef uint16_t efd_lookuptbl_t;
typedef uint16_t efd_hashfunc_t;
/**
- * Creates an EFD table with a single offline region and multiple per-socket
+ * Creates an EFD table with a single offline region and multiple per-NUMA-node
* internally-managed copies of the online table used for lookups
*
* @param name
@@ -127,11 +127,11 @@ typedef uint16_t efd_hashfunc_t;
* Will be rounded up to the next smallest valid table size
* @param key_len
* Length of the key
- * @param online_cpu_socket_bitmask
- * Bitmask specifying which sockets should get a copy of the online table.
- * LSB = socket 0, etc.
- * @param offline_cpu_socket
- * Identifies the socket where the offline table will be allocated
+ * @param online_cpu_numa_bitmask
+ * Bitmask specifying which NUMA nodes should get a copy of the online table.
+ * LSB = NUMA node 0, etc.
+ * @param offline_cpu_numa
+ * Identifies the NUMA node where the offline table will be allocated
* (and most efficiently accessed in the case of updates/insertions)
*
* @return
@@ -139,7 +139,7 @@ typedef uint16_t efd_hashfunc_t;
*/
struct rte_efd_table *
rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
- uint64_t online_cpu_socket_bitmask, uint8_t offline_cpu_socket);
+ uint64_t online_cpu_numa_bitmask, uint8_t offline_cpu_numa);
/**
* Releases the resources from an EFD table
@@ -177,8 +177,8 @@ rte_efd_find_existing(const char *name);
*
* @param table
* EFD table to reference
- * @param socket_id
- * Socket ID to use to lookup existing value (ideally caller's socket id)
+ * @param numa_id
+ * NUMA node ID to use to lookup existing value (ideally caller's NUMA node)
* @param key
* EFD table key to modify
* @param value
@@ -198,7 +198,7 @@ rte_efd_find_existing(const char *name);
* 0 - success
*/
int
-rte_efd_update(struct rte_efd_table *table, unsigned int socket_id,
+rte_efd_update(struct rte_efd_table *table, unsigned int numa_id,
const void *key, efd_value_t value);
/**
@@ -208,8 +208,8 @@ rte_efd_update(struct rte_efd_table *table, unsigned int socket_id,
*
* @param table
* EFD table to reference
- * @param socket_id
- * Socket ID to use to lookup existing value (ideally caller's socket id)
+ * @param numa_id
+ * NUMA node ID to use to lookup existing value (ideally caller's NUMA node)
* @param key
* EFD table key to delete
* @param prev_value
@@ -220,7 +220,7 @@ rte_efd_update(struct rte_efd_table *table, unsigned int socket_id,
* nonzero otherwise
*/
int
-rte_efd_delete(struct rte_efd_table *table, unsigned int socket_id,
+rte_efd_delete(struct rte_efd_table *table, unsigned int numa_id,
const void *key, efd_value_t *prev_value);
/**
@@ -235,8 +235,8 @@ rte_efd_delete(struct rte_efd_table *table, unsigned int socket_id,
*
* @param table
* EFD table to reference
- * @param socket_id
- * Socket ID to use to lookup existing value (ideally caller's socket id)
+ * @param numa_id
+ * NUMA node ID to use to lookup existing value (ideally caller's NUMA node)
* @param key
* EFD table key to look up
*
@@ -244,7 +244,7 @@ rte_efd_delete(struct rte_efd_table *table, unsigned int socket_id,
* Value associated with the key, or random junk if they key was never inserted
*/
efd_value_t
-rte_efd_lookup(const struct rte_efd_table *table, unsigned int socket_id,
+rte_efd_lookup(const struct rte_efd_table *table, unsigned int numa_id,
const void *key);
/**
@@ -259,8 +259,8 @@ rte_efd_lookup(const struct rte_efd_table *table, unsigned int socket_id,
*
* @param table
* EFD table to reference
- * @param socket_id
- * Socket ID to use to lookup existing value (ideally caller's socket id)
+ * @param numa_id
+ * NUMA node ID to use to lookup existing value (ideally caller's NUMA node)
* @param num_keys
* Number of keys in the key_list array, must be less than RTE_EFD_BURST_MAX
* @param key_list
@@ -269,7 +269,7 @@ rte_efd_lookup(const struct rte_efd_table *table, unsigned int socket_id,
* Array of size num_keys where lookup values will be stored
*/
void
-rte_efd_lookup_bulk(const struct rte_efd_table *table, unsigned int socket_id,
+rte_efd_lookup_bulk(const struct rte_efd_table *table, unsigned int numa_id,
int num_keys, const void **key_list,
efd_value_t *value_list);
--
2.55.0
next prev parent reply other threads:[~2026-11-03 14:56 UTC|newest]
Thread overview: 237+ 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 ` [PATCH 015/227] graph: " Chengwen Feng
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 ` Chengwen Feng [this message]
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
2026-11-04 11:40 ` Thomas Monjalon
2026-11-04 12:24 ` chengwen.feng
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-21-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.