From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5210DA0561; Sun, 19 Apr 2020 12:02:54 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F004D1D410; Sun, 19 Apr 2020 12:01:56 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id AF0611D40F for ; Sun, 19 Apr 2020 12:01:52 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 03JA18hX020147; Sun, 19 Apr 2020 03:01:50 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0818; bh=y5rY49KazOsctptEL7OxBmjI3ZtOcGMcUJJbWc807R0=; b=SVdsTmC7oIkpwNq3Yt5GP1q5WYJezG/9aP8kbZQJ07mHgZtGeMBnU1Q/BSxHecbRpPmP L6UzF0uibFPhhkBgGFdZcNoSqq6W+waflcNgvYLNfO96CMX7N+T081i0OCdp5IgWy1q7 oYrYdfYpOxiItXROxbPzKZy/eH3rJPlvG7nv3kS4+z/xEVHDuch9MdO6hETZNsjvGYfi krqgBvgHMqcVYiNE3SfSkc1RviJ4bSqBbwWwguXJ7fKLgKQXLAbAe6qUgB14jrS9jp10 K4qadheKQj8EFT7mU3vySAEW7U0aDx9qyCBDR+8+GMrBy1/uHEaU7ju39Z2aaoV0NZDo /w== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 30g12njx85-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 19 Apr 2020 03:01:50 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 19 Apr 2020 03:01:47 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sun, 19 Apr 2020 03:01:48 -0700 Received: from jerin-lab.marvell.com (jerin-lab.marvell.com [10.28.34.14]) by maili.marvell.com (Postfix) with ESMTP id 45F463F703F; Sun, 19 Apr 2020 03:01:46 -0700 (PDT) From: To: Bruce Richardson CC: , , , , , Jerin Jacob Date: Sun, 19 Apr 2020 15:31:02 +0530 Message-ID: <20200419100133.3232316-3-jerinj@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200419100133.3232316-1-jerinj@marvell.com> References: <20200413150116.734047-1-jerinj@marvell.com> <20200419100133.3232316-1-jerinj@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676 definitions=2020-04-19_02:2020-04-17, 2020-04-19 signatures=0 Subject: [dpdk-dev] [PATCH v6 02/33] eal: introduce API for getting thread name X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Jerin Jacob Introduce rte_thread_getname() API to get the thread name and implement it for Linux and FreeBSD. FreeBSD does not support getting the thread name. One of the consumers of this API will be the trace subsystem where it used as an informative purpose. Signed-off-by: Jerin Jacob --- lib/librte_eal/freebsd/eal_thread.c | 9 +++++++++ lib/librte_eal/include/rte_lcore.h | 17 +++++++++++++++++ lib/librte_eal/linux/eal_thread.c | 15 +++++++++++++++ lib/librte_eal/rte_eal_version.map | 1 + 4 files changed, 42 insertions(+) diff --git a/lib/librte_eal/freebsd/eal_thread.c b/lib/librte_eal/freebsd/eal_thread.c index f21eddd93..d802c1d2e 100644 --- a/lib/librte_eal/freebsd/eal_thread.c +++ b/lib/librte_eal/freebsd/eal_thread.c @@ -175,3 +175,12 @@ int rte_thread_setname(pthread_t id, const char *name) pthread_set_name_np(id, name); return 0; } + +int rte_thread_getname(pthread_t id, char *name, size_t len) +{ + RTE_SET_USED(id); + RTE_SET_USED(name); + RTE_SET_USED(len); + + return -ENOTSUP; +} diff --git a/lib/librte_eal/include/rte_lcore.h b/lib/librte_eal/include/rte_lcore.h index 476b8ef3a..339046bc8 100644 --- a/lib/librte_eal/include/rte_lcore.h +++ b/lib/librte_eal/include/rte_lcore.h @@ -240,6 +240,23 @@ void rte_thread_get_affinity(rte_cpuset_t *cpusetp); */ int rte_thread_setname(pthread_t id, const char *name); +/** + * Get thread name. + * + * @note It fails with glibc < 2.12. + * + * @param id + * Thread id. + * @param name + * Thread name to set. + * @param len + * Thread name buffer length. + * @return + * On success, return 0; otherwise return a negative value. + */ +__rte_experimental +int rte_thread_getname(pthread_t id, char *name, size_t len); + /** * Create a control thread. * diff --git a/lib/librte_eal/linux/eal_thread.c b/lib/librte_eal/linux/eal_thread.c index 2fa5806b8..61fb2ed45 100644 --- a/lib/librte_eal/linux/eal_thread.c +++ b/lib/librte_eal/linux/eal_thread.c @@ -186,3 +186,18 @@ int rte_thread_setname(pthread_t id, const char *name) RTE_SET_USED(name); return -ret; } + +int rte_thread_getname(pthread_t id, char *name, size_t len) +{ + int ret = ENOSYS; +#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) +#if __GLIBC_PREREQ(2, 12) + ret = pthread_getname_np(id, name, len); +#endif +#endif + RTE_SET_USED(id); + RTE_SET_USED(name); + RTE_SET_USED(len); + return -ret; + +} diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map index f9ede5b41..71098581f 100644 --- a/lib/librte_eal/rte_eal_version.map +++ b/lib/librte_eal/rte_eal_version.map @@ -338,4 +338,5 @@ EXPERIMENTAL { # added in 20.05 rte_log_can_log; + rte_thread_getname; }; -- 2.25.1