* [PATCH v1 0/5] prefix lcore role enum values
@ 2026-06-17 10:28 Huisong Li
2026-06-17 10:28 ` [PATCH v1 1/5] eal: " Huisong Li
` (5 more replies)
0 siblings, 6 replies; 10+ messages in thread
From: Huisong Li @ 2026-06-17 10:28 UTC (permalink / raw)
To: thomas; +Cc: mb, andrew.rybchenko, dev, zhanjie9, lihuisong
Add the RTE_LCORE_ prefix to the lcore role enum values in rte_lcore_role_t
to follow DPDK naming conventions.
- ROLE_RTE -> RTE_LCORE_ROLE_RTE
- ROLE_OFF -> RTE_LCORE_ROLE_OFF
- ROLE_SERVICE -> RTE_LCORE_ROLE_SERVICE
- ROLE_NON_EAL -> RTE_LCORE_ROLE_NON_EAL
Old names are kept as macros aliasing to the new names to preserve
backward compatibility.
Huisong Li (5):
eal: prefix lcore role enum values
eal: use new lcore role enum names
graph: use new lcore role enum names
net/softnic: use new lcore role enum names
test: use new lcore role enum names
app/test/test_lcores.c | 2 +-
app/test/test_mempool.c | 2 +-
drivers/net/softnic/rte_eth_softnic_thread.c | 4 +--
lib/eal/common/eal_common_lcore.c | 34 ++++++++++----------
lib/eal/common/eal_common_options.c | 28 ++++++++--------
lib/eal/common/eal_private.h | 4 +--
lib/eal/common/rte_service.c | 12 +++----
lib/eal/include/rte_lcore.h | 17 +++++++---
lib/graph/graph.c | 2 +-
9 files changed, 56 insertions(+), 49 deletions(-)
--
2.33.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v1 1/5] eal: prefix lcore role enum values
2026-06-17 10:28 [PATCH v1 0/5] prefix lcore role enum values Huisong Li
@ 2026-06-17 10:28 ` Huisong Li
2026-06-17 10:28 ` [PATCH v1 2/5] eal: use new lcore role enum names Huisong Li
` (4 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Huisong Li @ 2026-06-17 10:28 UTC (permalink / raw)
To: thomas; +Cc: mb, andrew.rybchenko, dev, zhanjie9, lihuisong
Add the RTE_LCORE_ prefix to the lcore role enum values in
rte_lcore_role_t to follow DPDK naming conventions.
- ROLE_RTE -> RTE_LCORE_ROLE_RTE
- ROLE_OFF -> RTE_LCORE_ROLE_OFF
- ROLE_SERVICE -> RTE_LCORE_ROLE_SERVICE
- ROLE_NON_EAL -> RTE_LCORE_ROLE_NON_EAL
Old names are kept as macros aliasing to the new names to preserve
backward compatibility.
Suggested-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
lib/eal/include/rte_lcore.h | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/lib/eal/include/rte_lcore.h b/lib/eal/include/rte_lcore.h
index 10f965b4f0..2fc4d0b15b 100644
--- a/lib/eal/include/rte_lcore.h
+++ b/lib/eal/include/rte_lcore.h
@@ -31,12 +31,18 @@ RTE_DECLARE_PER_LCORE(unsigned, _lcore_id); /**< Per thread "lcore id". */
* The lcore role (used in RTE or not).
*/
enum rte_lcore_role_t {
- ROLE_RTE,
- ROLE_OFF,
- ROLE_SERVICE,
- ROLE_NON_EAL,
+ RTE_LCORE_ROLE_RTE,
+ RTE_LCORE_ROLE_OFF,
+ RTE_LCORE_ROLE_SERVICE,
+ RTE_LCORE_ROLE_NON_EAL,
};
+/* Old lcore role aliases for backward compatibility. */
+#define ROLE_RTE RTE_LCORE_ROLE_RTE
+#define ROLE_OFF RTE_LCORE_ROLE_OFF
+#define ROLE_SERVICE RTE_LCORE_ROLE_SERVICE
+#define ROLE_NON_EAL RTE_LCORE_ROLE_NON_EAL
+
/**
* Get a lcore's role.
*
@@ -308,7 +314,8 @@ rte_lcore_callback_unregister(void *handle);
typedef int (*rte_lcore_iterate_cb)(unsigned int lcore_id, void *arg);
/**
- * Iterate on all active lcores (ROLE_RTE, ROLE_SERVICE and ROLE_NON_EAL).
+ * Iterate on all active lcores (RTE_LCORE_ROLE_RTE, RTE_LCORE_ROLE_SERVICE
+ * and RTE_LCORE_ROLE_NON_EAL).
* No modification on the lcore states is allowed in the callback.
*
* Note: as opposed to init/uninit callbacks, iteration callbacks can be
--
2.33.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v1 2/5] eal: use new lcore role enum names
2026-06-17 10:28 [PATCH v1 0/5] prefix lcore role enum values Huisong Li
2026-06-17 10:28 ` [PATCH v1 1/5] eal: " Huisong Li
@ 2026-06-17 10:28 ` Huisong Li
2026-06-17 10:28 ` [PATCH v1 3/5] graph: " Huisong Li
` (3 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Huisong Li @ 2026-06-17 10:28 UTC (permalink / raw)
To: thomas; +Cc: mb, andrew.rybchenko, dev, zhanjie9, lihuisong
Replace old lcore role enum names with new RTE_LCORE_ prefixed names
in EAL common code.
Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
lib/eal/common/eal_common_lcore.c | 34 ++++++++++++++---------------
lib/eal/common/eal_common_options.c | 28 ++++++++++++------------
lib/eal/common/eal_private.h | 4 ++--
lib/eal/common/rte_service.c | 12 +++++-----
4 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/lib/eal/common/eal_common_lcore.c b/lib/eal/common/eal_common_lcore.c
index 39411f9370..021687599b 100644
--- a/lib/eal/common/eal_common_lcore.c
+++ b/lib/eal/common/eal_common_lcore.c
@@ -76,7 +76,7 @@ rte_eal_lcore_role(unsigned int lcore_id)
struct rte_config *cfg = rte_eal_get_configuration();
if (lcore_id >= RTE_MAX_LCORE)
- return ROLE_OFF;
+ return RTE_LCORE_ROLE_OFF;
return cfg->lcore_role[lcore_id];
}
@@ -99,7 +99,7 @@ int rte_lcore_is_enabled(unsigned int lcore_id)
if (lcore_id >= RTE_MAX_LCORE)
return 0;
- return cfg->lcore_role[lcore_id] == ROLE_RTE;
+ return cfg->lcore_role[lcore_id] == RTE_LCORE_ROLE_RTE;
}
RTE_EXPORT_SYMBOL(rte_get_next_lcore)
@@ -176,7 +176,7 @@ rte_eal_cpu_init(void)
lcore_to_socket_id[lcore_id] = socket_id;
if (eal_cpu_detected(lcore_id) == 0) {
- config->lcore_role[lcore_id] = ROLE_OFF;
+ config->lcore_role[lcore_id] = RTE_LCORE_ROLE_OFF;
lcore_config[lcore_id].core_index = -1;
continue;
}
@@ -185,8 +185,8 @@ rte_eal_cpu_init(void)
CPU_SET(lcore_id, &lcore_config[lcore_id].cpuset);
/* By default, each detected core is enabled */
- config->lcore_role[lcore_id] = ROLE_RTE;
- lcore_config[lcore_id].core_role = ROLE_RTE;
+ config->lcore_role[lcore_id] = RTE_LCORE_ROLE_RTE;
+ lcore_config[lcore_id].core_role = RTE_LCORE_ROLE_RTE;
lcore_config[lcore_id].core_id = eal_cpu_core_id(lcore_id);
lcore_config[lcore_id].numa_id = socket_id;
EAL_LOG(DEBUG, "Detected lcore %u as "
@@ -314,7 +314,7 @@ rte_lcore_callback_register(const char *name, rte_lcore_init_cb init,
if (callback->init == NULL)
goto no_init;
for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
- if (cfg->lcore_role[lcore_id] == ROLE_OFF)
+ if (cfg->lcore_role[lcore_id] == RTE_LCORE_ROLE_OFF)
continue;
if (callback_init(callback, lcore_id) == 0)
continue;
@@ -322,7 +322,7 @@ rte_lcore_callback_register(const char *name, rte_lcore_init_cb init,
* previous lcore.
*/
while (lcore_id-- != 0) {
- if (cfg->lcore_role[lcore_id] == ROLE_OFF)
+ if (cfg->lcore_role[lcore_id] == RTE_LCORE_ROLE_OFF)
continue;
callback_uninit(callback, lcore_id);
}
@@ -354,7 +354,7 @@ rte_lcore_callback_unregister(void *handle)
if (callback->uninit == NULL)
goto no_uninit;
for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
- if (cfg->lcore_role[lcore_id] == ROLE_OFF)
+ if (cfg->lcore_role[lcore_id] == RTE_LCORE_ROLE_OFF)
continue;
callback_uninit(callback, lcore_id);
}
@@ -376,9 +376,9 @@ eal_lcore_non_eal_allocate(void)
rte_rwlock_write_lock(&lcore_lock);
for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
- if (cfg->lcore_role[lcore_id] != ROLE_OFF)
+ if (cfg->lcore_role[lcore_id] != RTE_LCORE_ROLE_OFF)
continue;
- cfg->lcore_role[lcore_id] = ROLE_NON_EAL;
+ cfg->lcore_role[lcore_id] = RTE_LCORE_ROLE_NON_EAL;
cfg->lcore_count++;
break;
}
@@ -399,7 +399,7 @@ eal_lcore_non_eal_allocate(void)
}
EAL_LOG(DEBUG, "Initialization refused for lcore %u.",
lcore_id);
- cfg->lcore_role[lcore_id] = ROLE_OFF;
+ cfg->lcore_role[lcore_id] = RTE_LCORE_ROLE_OFF;
cfg->lcore_count--;
lcore_id = RTE_MAX_LCORE;
goto out;
@@ -416,11 +416,11 @@ eal_lcore_non_eal_release(unsigned int lcore_id)
struct lcore_callback *callback;
rte_rwlock_write_lock(&lcore_lock);
- if (cfg->lcore_role[lcore_id] != ROLE_NON_EAL)
+ if (cfg->lcore_role[lcore_id] != RTE_LCORE_ROLE_NON_EAL)
goto out;
TAILQ_FOREACH(callback, &lcore_callbacks, next)
callback_uninit(callback, lcore_id);
- cfg->lcore_role[lcore_id] = ROLE_OFF;
+ cfg->lcore_role[lcore_id] = RTE_LCORE_ROLE_OFF;
cfg->lcore_count--;
out:
rte_rwlock_write_unlock(&lcore_lock);
@@ -436,7 +436,7 @@ rte_lcore_iterate(rte_lcore_iterate_cb cb, void *arg)
rte_rwlock_read_lock(&lcore_lock);
for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
- if (cfg->lcore_role[lcore_id] == ROLE_OFF)
+ if (cfg->lcore_role[lcore_id] == RTE_LCORE_ROLE_OFF)
continue;
ret = cb(lcore_id, arg);
if (ret != 0)
@@ -450,11 +450,11 @@ static const char *
lcore_role_str(enum rte_lcore_role_t role)
{
switch (role) {
- case ROLE_RTE:
+ case RTE_LCORE_ROLE_RTE:
return "RTE";
- case ROLE_SERVICE:
+ case RTE_LCORE_ROLE_SERVICE:
return "SERVICE";
- case ROLE_NON_EAL:
+ case RTE_LCORE_ROLE_NON_EAL:
return "NON_EAL";
default:
return "UNKNOWN";
diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c
index 1049838d73..6dd748e37e 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -898,10 +898,10 @@ eal_parse_service_coremask(const char *coremask)
return -1;
}
- if (cfg->lcore_role[idx] == ROLE_RTE)
+ if (cfg->lcore_role[idx] == RTE_LCORE_ROLE_RTE)
taken_lcore_count++;
- lcore_config[idx].core_role = ROLE_SERVICE;
+ lcore_config[idx].core_role = RTE_LCORE_ROLE_SERVICE;
count++;
}
}
@@ -938,7 +938,7 @@ update_lcore_config(const rte_cpuset_t *cpuset, bool remap, uint16_t remap_base)
/* set everything to disabled first, then set up values */
for (i = 0; i < RTE_MAX_LCORE; i++) {
- cfg->lcore_role[i] = ROLE_OFF;
+ cfg->lcore_role[i] = RTE_LCORE_ROLE_OFF;
lcore_config[i].core_index = -1;
}
@@ -966,7 +966,7 @@ update_lcore_config(const rte_cpuset_t *cpuset, bool remap, uint16_t remap_base)
continue;
}
- cfg->lcore_role[lcore_id] = ROLE_RTE;
+ cfg->lcore_role[lcore_id] = RTE_LCORE_ROLE_RTE;
lcore_config[lcore_id].core_index = count;
CPU_ZERO(&lcore_config[lcore_id].cpuset);
CPU_SET(i, &lcore_config[lcore_id].cpuset);
@@ -1138,12 +1138,12 @@ eal_parse_service_corelist(const char *corelist)
if (min == RTE_MAX_LCORE)
min = idx;
for (idx = min; idx <= max; idx++) {
- if (cfg->lcore_role[idx] != ROLE_SERVICE) {
- if (cfg->lcore_role[idx] == ROLE_RTE)
+ if (cfg->lcore_role[idx] != RTE_LCORE_ROLE_SERVICE) {
+ if (cfg->lcore_role[idx] == RTE_LCORE_ROLE_RTE)
taken_lcore_count++;
lcore_config[idx].core_role =
- ROLE_SERVICE;
+ RTE_LCORE_ROLE_SERVICE;
count++;
}
}
@@ -1166,7 +1166,7 @@ eal_parse_service_corelist(const char *corelist)
rte_cpuset_t service_cpuset;
CPU_ZERO(&service_cpuset);
for (i = 0; i < RTE_MAX_LCORE; i++) {
- if (lcore_config[i].core_role == ROLE_SERVICE)
+ if (lcore_config[i].core_role == RTE_LCORE_ROLE_SERVICE)
CPU_SET(i, &service_cpuset);
}
if (CPU_COUNT(&service_cpuset) > 0) {
@@ -1195,12 +1195,12 @@ eal_parse_main_lcore(const char *arg)
return -1;
/* ensure main core is not used as service core */
- if (lcore_config[cfg->main_lcore].core_role == ROLE_SERVICE) {
+ if (lcore_config[cfg->main_lcore].core_role == RTE_LCORE_ROLE_SERVICE) {
EAL_LOG(ERR, "Error: Main lcore is used as a service core");
return -1;
}
/* check that we have the core recorded in the core list */
- if (cfg->lcore_role[cfg->main_lcore] != ROLE_RTE) {
+ if (cfg->lcore_role[cfg->main_lcore] != RTE_LCORE_ROLE_RTE) {
EAL_LOG(ERR, "Error: Main lcore is not enabled for DPDK");
return -1;
}
@@ -1389,7 +1389,7 @@ eal_parse_lcores(const char *lcores)
/* Reset lcore config */
for (idx = 0; idx < RTE_MAX_LCORE; idx++) {
- cfg->lcore_role[idx] = ROLE_OFF;
+ cfg->lcore_role[idx] = RTE_LCORE_ROLE_OFF;
lcore_config[idx].core_index = -1;
CPU_ZERO(&lcore_config[idx].cpuset);
}
@@ -1451,9 +1451,9 @@ eal_parse_lcores(const char *lcores)
continue;
set_count--;
- if (cfg->lcore_role[idx] != ROLE_RTE) {
+ if (cfg->lcore_role[idx] != RTE_LCORE_ROLE_RTE) {
lcore_config[idx].core_index = count;
- cfg->lcore_role[idx] = ROLE_RTE;
+ cfg->lcore_role[idx] = RTE_LCORE_ROLE_RTE;
count++;
}
@@ -2432,7 +2432,7 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg)
unsigned int lcore_id;
for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) {
- if (rte_lcore_has_role(lcore_id, ROLE_OFF))
+ if (rte_lcore_has_role(lcore_id, RTE_LCORE_ROLE_OFF))
continue;
RTE_CPU_OR(cpuset, cpuset, &lcore_config[lcore_id].cpuset);
}
diff --git a/lib/eal/common/eal_private.h b/lib/eal/common/eal_private.h
index 0c0544beaf..dff3565099 100644
--- a/lib/eal/common/eal_private.h
+++ b/lib/eal/common/eal_private.h
@@ -430,7 +430,7 @@ uint64_t get_tsc_freq_arch(void);
* Allocate a free lcore to associate to a non-EAL thread.
*
* @return
- * - the id of a lcore with role ROLE_NON_EAL on success.
+ * - the id of a lcore with role RTE_LCORE_ROLE_NON_EAL on success.
* - RTE_MAX_LCORE if none was available or initializing was refused (see
* rte_lcore_callback_register).
*/
@@ -441,7 +441,7 @@ unsigned int eal_lcore_non_eal_allocate(void);
* Counterpart of eal_lcore_non_eal_allocate().
*
* @param lcore_id
- * The lcore with role ROLE_NON_EAL to release.
+ * The lcore with role RTE_LCORE_ROLE_NON_EAL to release.
*/
void eal_lcore_non_eal_release(unsigned int lcore_id);
diff --git a/lib/eal/common/rte_service.c b/lib/eal/common/rte_service.c
index d2ac9d3f14..5c3a350ae8 100644
--- a/lib/eal/common/rte_service.c
+++ b/lib/eal/common/rte_service.c
@@ -107,7 +107,7 @@ rte_service_init(void)
int i;
struct rte_config *cfg = rte_eal_get_configuration();
for (i = 0; i < RTE_MAX_LCORE; i++) {
- if (lcore_config[i].core_role == ROLE_SERVICE) {
+ if (lcore_config[i].core_role == RTE_LCORE_ROLE_SERVICE) {
if ((unsigned int)i == cfg->main_lcore)
continue;
rte_service_lcore_add(i);
@@ -718,7 +718,7 @@ set_lcore_state(uint32_t lcore, int32_t state)
lcore_config[lcore].core_role = state;
/* update per-lcore optimized state tracking */
- cs->is_service_core = (state == ROLE_SERVICE);
+ cs->is_service_core = (state == RTE_LCORE_ROLE_SERVICE);
rte_eal_trace_service_lcore_state_change(lcore, state);
}
@@ -734,7 +734,7 @@ rte_service_lcore_reset_all(void)
if (cs->is_service_core) {
rte_bitset_clear_all(cs->mapped_services, RTE_SERVICE_NUM_MAX);
- set_lcore_state(i, ROLE_RTE);
+ set_lcore_state(i, RTE_LCORE_ROLE_RTE);
/* runstate act as guard variable Use
* store-release memory order here to synchronize
* with load-acquire in runstate read functions.
@@ -761,7 +761,7 @@ rte_service_lcore_add(uint32_t lcore)
if (cs->is_service_core)
return -EALREADY;
- set_lcore_state(lcore, ROLE_SERVICE);
+ set_lcore_state(lcore, RTE_LCORE_ROLE_SERVICE);
/* ensure that after adding a core the mask and state are defaults */
rte_bitset_clear_all(cs->mapped_services, RTE_SERVICE_NUM_MAX);
@@ -793,7 +793,7 @@ rte_service_lcore_del(uint32_t lcore)
RUNSTATE_STOPPED)
return -EBUSY;
- set_lcore_state(lcore, ROLE_RTE);
+ set_lcore_state(lcore, RTE_LCORE_ROLE_RTE);
rte_smp_wmb();
return 0;
@@ -1126,7 +1126,7 @@ rte_service_dump(FILE *f, uint32_t id)
fprintf(f, "Service Cores Summary\n");
for (i = 0; i < RTE_MAX_LCORE; i++) {
- if (lcore_config[i].core_role != ROLE_SERVICE)
+ if (lcore_config[i].core_role != RTE_LCORE_ROLE_SERVICE)
continue;
service_dump_calls_per_lcore(f, i);
--
2.33.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v1 3/5] graph: use new lcore role enum names
2026-06-17 10:28 [PATCH v1 0/5] prefix lcore role enum values Huisong Li
2026-06-17 10:28 ` [PATCH v1 1/5] eal: " Huisong Li
2026-06-17 10:28 ` [PATCH v1 2/5] eal: use new lcore role enum names Huisong Li
@ 2026-06-17 10:28 ` Huisong Li
2026-06-17 10:28 ` [PATCH v1 4/5] net/softnic: " Huisong Li
` (2 subsequent siblings)
5 siblings, 0 replies; 10+ messages in thread
From: Huisong Li @ 2026-06-17 10:28 UTC (permalink / raw)
To: thomas; +Cc: mb, andrew.rybchenko, dev, zhanjie9, lihuisong
Replace old lcore role enum names with new RTE_LCORE_ prefixed names
in graph library.
Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
lib/graph/graph.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/graph/graph.c b/lib/graph/graph.c
index 5f8ada2185..8165a0a932 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)
goto fail;
}
- if (rte_lcore_has_role(lcore, ROLE_OFF))
+ if (rte_lcore_has_role(lcore, RTE_LCORE_ROLE_OFF))
SET_ERR_JMP(ENOLINK, fail, "lcore %d is invalid", lcore);
STAILQ_FOREACH(graph, &graph_list, next)
--
2.33.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v1 4/5] net/softnic: use new lcore role enum names
2026-06-17 10:28 [PATCH v1 0/5] prefix lcore role enum values Huisong Li
` (2 preceding siblings ...)
2026-06-17 10:28 ` [PATCH v1 3/5] graph: " Huisong Li
@ 2026-06-17 10:28 ` Huisong Li
2026-06-17 10:28 ` [PATCH v1 5/5] test: " Huisong Li
2026-06-17 11:48 ` [PATCH v1 0/5] prefix lcore role enum values Morten Brørup
5 siblings, 0 replies; 10+ messages in thread
From: Huisong Li @ 2026-06-17 10:28 UTC (permalink / raw)
To: thomas; +Cc: mb, andrew.rybchenko, dev, zhanjie9, lihuisong
Replace old lcore role enum names with new RTE_LCORE_ prefixed names
in softnic driver.
Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
drivers/net/softnic/rte_eth_softnic_thread.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/softnic/rte_eth_softnic_thread.c b/drivers/net/softnic/rte_eth_softnic_thread.c
index f72c836199..a6d47c8b33 100644
--- a/drivers/net/softnic/rte_eth_softnic_thread.c
+++ b/drivers/net/softnic/rte_eth_softnic_thread.c
@@ -98,9 +98,9 @@ thread_is_valid(struct pmd_internals *softnic, uint32_t thread_id)
if (thread_id == rte_get_main_lcore())
return 0; /* FALSE */
- if (softnic->params.sc && rte_lcore_has_role(thread_id, ROLE_SERVICE))
+ if (softnic->params.sc && rte_lcore_has_role(thread_id, RTE_LCORE_ROLE_SERVICE))
return 1; /* TRUE */
- if (!softnic->params.sc && rte_lcore_has_role(thread_id, ROLE_RTE))
+ if (!softnic->params.sc && rte_lcore_has_role(thread_id, RTE_LCORE_ROLE_RTE))
return 1; /* TRUE */
return 0; /* FALSE */
--
2.33.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH v1 5/5] test: use new lcore role enum names
2026-06-17 10:28 [PATCH v1 0/5] prefix lcore role enum values Huisong Li
` (3 preceding siblings ...)
2026-06-17 10:28 ` [PATCH v1 4/5] net/softnic: " Huisong Li
@ 2026-06-17 10:28 ` Huisong Li
2026-06-17 11:48 ` [PATCH v1 0/5] prefix lcore role enum values Morten Brørup
5 siblings, 0 replies; 10+ messages in thread
From: Huisong Li @ 2026-06-17 10:28 UTC (permalink / raw)
To: thomas; +Cc: mb, andrew.rybchenko, dev, zhanjie9, lihuisong
Replace old lcore role enum names with new RTE_LCORE_ prefixed names
in test applications.
Signed-off-by: Huisong Li <lihuisong@huawei.com>
---
app/test/test_lcores.c | 2 +-
app/test/test_mempool.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/test/test_lcores.c b/app/test/test_lcores.c
index 13842615d5..60354b3f7f 100644
--- a/app/test/test_lcores.c
+++ b/app/test/test_lcores.c
@@ -396,7 +396,7 @@ test_lcores(void)
unsigned int i;
for (i = 0; i < RTE_MAX_LCORE; i++) {
- if (!rte_lcore_has_role(i, ROLE_OFF))
+ if (!rte_lcore_has_role(i, RTE_LCORE_ROLE_OFF))
eal_threads_count++;
}
if (eal_threads_count == 0) {
diff --git a/app/test/test_mempool.c b/app/test/test_mempool.c
index e54249ce61..38f0b6e712 100644
--- a/app/test/test_mempool.c
+++ b/app/test/test_mempool.c
@@ -353,7 +353,7 @@ test_mempool_sp_sc(void)
ret = -1;
goto err;
}
- if (rte_eal_lcore_role(lcore_next) != ROLE_RTE) {
+ if (rte_eal_lcore_role(lcore_next) != RTE_LCORE_ROLE_RTE) {
ret = -1;
goto err;
}
--
2.33.0
^ permalink raw reply related [flat|nested] 10+ messages in thread
* RE: [PATCH v1 0/5] prefix lcore role enum values
2026-06-17 10:28 [PATCH v1 0/5] prefix lcore role enum values Huisong Li
` (4 preceding siblings ...)
2026-06-17 10:28 ` [PATCH v1 5/5] test: " Huisong Li
@ 2026-06-17 11:48 ` Morten Brørup
2026-06-18 16:19 ` Thomas Monjalon
2026-06-19 2:03 ` Stephen Hemminger
5 siblings, 2 replies; 10+ messages in thread
From: Morten Brørup @ 2026-06-17 11:48 UTC (permalink / raw)
To: Huisong Li, thomas; +Cc: andrew.rybchenko, dev, zhanjie9
> From: Huisong Li [mailto:lihuisong@huawei.com]
> Sent: Wednesday, 17 June 2026 12.28
>
> Add the RTE_LCORE_ prefix to the lcore role enum values in
> rte_lcore_role_t
> to follow DPDK naming conventions.
>
> - ROLE_RTE -> RTE_LCORE_ROLE_RTE
> - ROLE_OFF -> RTE_LCORE_ROLE_OFF
> - ROLE_SERVICE -> RTE_LCORE_ROLE_SERVICE
> - ROLE_NON_EAL -> RTE_LCORE_ROLE_NON_EAL
>
> Old names are kept as macros aliasing to the new names to preserve
> backward compatibility.
>
Series-Acked-by: Morten Brørup <mb@smartsharesystems.com>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 0/5] prefix lcore role enum values
2026-06-17 11:48 ` [PATCH v1 0/5] prefix lcore role enum values Morten Brørup
@ 2026-06-18 16:19 ` Thomas Monjalon
2026-06-18 18:52 ` Morten Brørup
2026-06-19 2:03 ` Stephen Hemminger
1 sibling, 1 reply; 10+ messages in thread
From: Thomas Monjalon @ 2026-06-18 16:19 UTC (permalink / raw)
To: Huisong Li
Cc: dev, andrew.rybchenko, zhanjie9, Morten Brørup,
David Marchand
17/06/2026 13:48, Morten Brørup:
> > From: Huisong Li [mailto:lihuisong@huawei.com]
> > Sent: Wednesday, 17 June 2026 12.28
> >
> > Add the RTE_LCORE_ prefix to the lcore role enum values in
> > rte_lcore_role_t
> > to follow DPDK naming conventions.
> >
> > - ROLE_RTE -> RTE_LCORE_ROLE_RTE
> > - ROLE_OFF -> RTE_LCORE_ROLE_OFF
> > - ROLE_SERVICE -> RTE_LCORE_ROLE_SERVICE
> > - ROLE_NON_EAL -> RTE_LCORE_ROLE_NON_EAL
> >
> > Old names are kept as macros aliasing to the new names to preserve
> > backward compatibility.
> >
>
> Series-Acked-by: Morten Brørup <mb@smartsharesystems.com>
Squashed and applied, thanks.
I have a doubt about RTE_LCORE_ROLE_RTE: could we find a better name?
Also we should probably add some comments to explain each role.
^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH v1 0/5] prefix lcore role enum values
2026-06-18 16:19 ` Thomas Monjalon
@ 2026-06-18 18:52 ` Morten Brørup
0 siblings, 0 replies; 10+ messages in thread
From: Morten Brørup @ 2026-06-18 18:52 UTC (permalink / raw)
To: Thomas Monjalon, Huisong Li
Cc: dev, andrew.rybchenko, zhanjie9, David Marchand, Bruce Richardson
> From: Thomas Monjalon [mailto:thomas@monjalon.net]
> Sent: Thursday, 18 June 2026 18.20
>
> 17/06/2026 13:48, Morten Brørup:
> > > From: Huisong Li [mailto:lihuisong@huawei.com]
> > > Sent: Wednesday, 17 June 2026 12.28
> > >
> > > Add the RTE_LCORE_ prefix to the lcore role enum values in
> > > rte_lcore_role_t
> > > to follow DPDK naming conventions.
> > >
> > > - ROLE_RTE -> RTE_LCORE_ROLE_RTE
> > > - ROLE_OFF -> RTE_LCORE_ROLE_OFF
> > > - ROLE_SERVICE -> RTE_LCORE_ROLE_SERVICE
> > > - ROLE_NON_EAL -> RTE_LCORE_ROLE_NON_EAL
> > >
> > > Old names are kept as macros aliasing to the new names to preserve
> > > backward compatibility.
> > >
> >
> > Series-Acked-by: Morten Brørup <mb@smartsharesystems.com>
>
> Squashed and applied, thanks.
>
> I have a doubt about RTE_LCORE_ROLE_RTE: could we find a better name?
Yes, it made more sense when lcores were either used by DPDK or not.
Note that it's used by both workers and the main lcore.
>
> Also we should probably add some comments to explain each role.
+1
BTW, I thought the Non-EAL role was for registered control plane threads. But then I looked into Grout.
Grout uses the Non-EAL role for its dataplane threads. And the RTE role for its main thread, which is handling the control plane (which I suppose is not unusual).
Lcore roles and CPU core isolation is very flexible in DPDK. Maybe too flexible.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v1 0/5] prefix lcore role enum values
2026-06-17 11:48 ` [PATCH v1 0/5] prefix lcore role enum values Morten Brørup
2026-06-18 16:19 ` Thomas Monjalon
@ 2026-06-19 2:03 ` Stephen Hemminger
1 sibling, 0 replies; 10+ messages in thread
From: Stephen Hemminger @ 2026-06-19 2:03 UTC (permalink / raw)
To: Morten Brørup; +Cc: Huisong Li, thomas, andrew.rybchenko, dev, zhanjie9
On Wed, 17 Jun 2026 13:48:37 +0200
Morten Brørup <mb@smartsharesystems.com> wrote:
> > From: Huisong Li [mailto:lihuisong@huawei.com]
> > Sent: Wednesday, 17 June 2026 12.28
> >
> > Add the RTE_LCORE_ prefix to the lcore role enum values in
> > rte_lcore_role_t
> > to follow DPDK naming conventions.
> >
> > - ROLE_RTE -> RTE_LCORE_ROLE_RTE
> > - ROLE_OFF -> RTE_LCORE_ROLE_OFF
> > - ROLE_SERVICE -> RTE_LCORE_ROLE_SERVICE
> > - ROLE_NON_EAL -> RTE_LCORE_ROLE_NON_EAL
> >
> > Old names are kept as macros aliasing to the new names to preserve
> > backward compatibility.
> >
>
> Series-Acked-by: Morten Brørup <mb@smartsharesystems.com>
>
The problem with this patch it causes build failures now with abi diff.
Example build log...
2 functions with some indirect sub-type change:
[C] 'function rte_lcore_role_t rte_eal_lcore_role(unsigned int)' at eal_common_lcore.c:74:1 has some indirect sub-type changes:
return type changed:
type size hasn't changed
4 enumerator deletions:
'rte_lcore_role_t::ROLE_RTE' value '0'
'rte_lcore_role_t::ROLE_OFF' value '1'
'rte_lcore_role_t::ROLE_SERVICE' value '2'
'rte_lcore_role_t::ROLE_NON_EAL' value '3'
4 enumerator insertions:
'rte_lcore_role_t::RTE_LCORE_ROLE_RTE' value '0'
'rte_lcore_role_t::RTE_LCORE_ROLE_OFF' value '1'
'rte_lcore_role_t::RTE_LCORE_ROLE_SERVICE' value '2'
'rte_lcore_role_t::RTE_LCORE_ROLE_NON_EAL' value '3'
[C] 'function int rte_lcore_has_role(unsigned int, rte_lcore_role_t)' at eal_common_lcore.c:85:1 has some indirect sub-type changes:
parameter 2 of type 'enum rte_lcore_role_t' has sub-type changes:
enum type 'enum rte_lcore_role_t' changed at rte_lcore.h:33:1, as reported earlier
Error: ABI issue reported for abidiff --suppr /home/runner/work/dpdk/dpdk/devtools/libabigail.abignore --no-added-syms --headers-dir1 reference/usr/local/include --headers-dir2 install/usr/local/include reference/usr/local/lib/librte_eal.so.26.1 install/usr/local/lib/librte_eal.so.26.2
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-06-19 2:03 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-17 10:28 [PATCH v1 0/5] prefix lcore role enum values Huisong Li
2026-06-17 10:28 ` [PATCH v1 1/5] eal: " Huisong Li
2026-06-17 10:28 ` [PATCH v1 2/5] eal: use new lcore role enum names Huisong Li
2026-06-17 10:28 ` [PATCH v1 3/5] graph: " Huisong Li
2026-06-17 10:28 ` [PATCH v1 4/5] net/softnic: " Huisong Li
2026-06-17 10:28 ` [PATCH v1 5/5] test: " Huisong Li
2026-06-17 11:48 ` [PATCH v1 0/5] prefix lcore role enum values Morten Brørup
2026-06-18 16:19 ` Thomas Monjalon
2026-06-18 18:52 ` Morten Brørup
2026-06-19 2:03 ` Stephen Hemminger
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.