DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
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


  parent reply	other threads:[~2026-11-03 14:56 UTC|newest]

Thread overview: 229+ 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-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

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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox