All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] eal/thread: fix return codes for rte_thread_setname()
@ 2018-06-08 12:37 Dariusz Stojaczyk
  2018-06-08  9:02 ` Stojaczyk, DariuszX
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Dariusz Stojaczyk @ 2018-06-08 12:37 UTC (permalink / raw)
  To: dev; +Cc: Dariusz Stojaczyk, thomas.monjalon, stable

The doc says this function returns negative errno
on error, but it currently returns either -1 or
positive errno.

It was incorrectly assumed that pthread_setname_np()
returns negative error numbers. It always returns
positive ones, so this patch negates its return value
before returning.

While here, also ignore rte_thread_setname() failure
in rte_ctrl_thread_create() and print a debug message
instead.

Fixes: 3901ed99c2f8 ("eal: fix thread naming on FreeBSD")
Cc: thomas.monjalon@6wind.com
Cc: stable@dpdk.org

Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
---
 lib/librte_eal/common/eal_common_thread.c | 3 ++-
 lib/librte_eal/linuxapp/eal/eal_thread.c  | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_thread.c b/lib/librte_eal/common/eal_common_thread.c
index 4239863..8110ac2 100644
--- a/lib/librte_eal/common/eal_common_thread.c
+++ b/lib/librte_eal/common/eal_common_thread.c
@@ -191,7 +191,8 @@ rte_ctrl_thread_create(pthread_t *thread, const char *name,
 	if (name != NULL) {
 		ret = rte_thread_setname(*thread, name);
 		if (ret < 0)
-			goto fail;
+			RTE_LOG(DEBUG, EAL,
+				"Cannot set name for ctrl thread\n");
 	}
 
 	cpu_found = 0;
diff --git a/lib/librte_eal/linuxapp/eal/eal_thread.c b/lib/librte_eal/linuxapp/eal/eal_thread.c
index f652ff9..b496fc7 100644
--- a/lib/librte_eal/linuxapp/eal/eal_thread.c
+++ b/lib/librte_eal/linuxapp/eal/eal_thread.c
@@ -176,7 +176,7 @@ int rte_sys_gettid(void)
 
 int rte_thread_setname(pthread_t id, const char *name)
 {
-	int ret = -1;
+	int ret = ENOSYS;
 #if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
 #if __GLIBC_PREREQ(2, 12)
 	ret = pthread_setname_np(id, name);
@@ -184,5 +184,5 @@ int rte_thread_setname(pthread_t id, const char *name)
 #endif
 	RTE_SET_USED(id);
 	RTE_SET_USED(name);
-	return ret;
+	return -ret;
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2018-07-12 22:19 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-08 12:37 [PATCH 1/2] eal/thread: fix return codes for rte_thread_setname() Dariusz Stojaczyk
2018-06-08  9:02 ` Stojaczyk, DariuszX
2018-06-08 12:37 ` [PATCH 2/2] eal/thread: fix return codes for rte_ctrl_thread_create() Dariusz Stojaczyk
2018-06-18 10:01   ` Burakov, Anatoly
2018-06-25 14:40     ` Olivier Matz
2018-06-18 10:00 ` [PATCH 1/2] eal/thread: fix return codes for rte_thread_setname() Burakov, Anatoly
2018-06-25 14:35   ` Olivier Matz
2018-06-25 16:58     ` Stojaczyk, DariuszX
2018-07-10 10:44 ` [PATCH v2 1/3] eal/thread: ignore rte_thread_setname() failure in ctrl thread Dariusz Stojaczyk
2018-07-10 10:44   ` [PATCH v2 2/3] eal/thread: fix return codes for rte_thread_setname() Dariusz Stojaczyk
2018-07-10 10:44   ` [PATCH v2 3/3] eal/thread: fix return codes for rte_ctrl_thread_create() Dariusz Stojaczyk
2018-07-12 22:19   ` [dpdk-stable] [PATCH v2 1/3] eal/thread: ignore rte_thread_setname() failure in ctrl thread Thomas Monjalon

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.