Thread name is very short 16 characters and therefore the name
dpdk-worker-%d will overflow with more than 9999 worker cores.
Error should be non-fatal since name only matters for debug.

Signed-off-by: Stephen Hemminger <[email protected]>
Acked-by: Bruce Richardson <[email protected]>
---
 lib/eal/freebsd/eal.c | 6 ++++--
 lib/eal/linux/eal.c   | 6 ++++--
 lib/eal/windows/eal.c | 6 ++++--
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c
index 6215245ad5..beda7e0c5c 100644
--- a/lib/eal/freebsd/eal.c
+++ b/lib/eal/freebsd/eal.c
@@ -690,8 +690,10 @@ rte_eal_init(int argc, char **argv)
                        rte_panic("Cannot create thread\n");
 
                /* Set thread_name for aid in debugging. */
-               snprintf(thread_name, sizeof(thread_name),
-                               "dpdk-worker%d", i);
+               ret = snprintf(thread_name, sizeof(thread_name), 
"dpdk-worker%d", i);
+               if (ret >= (int)sizeof(thread_name))
+                       EAL_LOG(INFO, "Worker thread name %s truncated", 
thread_name);
+
                rte_thread_set_name(lcore_config[i].thread_id, thread_name);
 
                ret = rte_thread_set_affinity_by_id(lcore_config[i].thread_id,
diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
index b12f325ddd..d848de03d8 100644
--- a/lib/eal/linux/eal.c
+++ b/lib/eal/linux/eal.c
@@ -863,8 +863,10 @@ rte_eal_init(int argc, char **argv)
                        rte_panic("Cannot create thread\n");
 
                /* Set thread_name for aid in debugging. */
-               snprintf(thread_name, sizeof(thread_name),
-                       "dpdk-worker%d", i);
+               ret = snprintf(thread_name, sizeof(thread_name), 
"dpdk-worker%d", i);
+               if (ret >= RTE_THREAD_NAME_SIZE)
+                       EAL_LOG(INFO, "Worker thread name %s truncated", 
thread_name);
+
                rte_thread_set_name(lcore_config[i].thread_id, thread_name);
 
                ret = rte_thread_set_affinity_by_id(lcore_config[i].thread_id,
diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c
index 21fe7cb1d9..8b539f8601 100644
--- a/lib/eal/windows/eal.c
+++ b/lib/eal/windows/eal.c
@@ -378,8 +378,10 @@ rte_eal_init(int argc, char **argv)
                        rte_panic("Cannot create thread\n");
 
                /* Set thread name for aid in debugging. */
-               snprintf(thread_name, sizeof(thread_name),
-                       "dpdk-worker%d", i);
+               ret = snprintf(thread_name, sizeof(thread_name), 
"dpdk-worker%d", i);
+               if (ret >= (int)sizeof(thread_name))
+                       EAL_LOG(INFO, "Worker thread name %s truncated", 
thread_name);
+
                rte_thread_set_name(lcore_config[i].thread_id, thread_name);
 
                ret = rte_thread_set_affinity_by_id(lcore_config[i].thread_id,
-- 
2.51.0

Reply via email to