From patchwork Sun Mar 29 14:43:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob Kollanukkaran X-Patchwork-Id: 67319 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5B9D5A0562; Sun, 29 Mar 2020 16:44:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 62AE91C0B1; Sun, 29 Mar 2020 16:43:44 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 46F601BFD9 for ; Sun, 29 Mar 2020 16:43:39 +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 02TEf89h013722; Sun, 29 Mar 2020 07:43:38 -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=lRubzQBr5dYNMXukrmGmTjFoHVZV4odmAKyiVDGO/fU=; b=GR/k7iikjHICbraf++UX95+xzduqaSdAQ5igYzwSXUH8aPfkC+/tgkJRaQta17YfRXmO L9ZjOQyil6+TS2Qiv0fd5F1cSGgwpiaI5hH0LlBtlOEVTkbECaIxSz4F1/bItO+AeP6x aPYhpVMP7BttFQcvYawrPmp7bYKe8WbriwH4L+pilSXZLK5P23ZVvFRloQcnsWvbZHXP yhT5+/Iw/+WrA/Ey8sOvg4ffT2FcS41uMp9gdp4d//o8kVpl4HCTm+Mwh8AvhkIaEkm+ I+DnmgzaBgvKoajGtJy/wJ2AWt6HcuYno30c1x62XAZbuvhjaeDOXBzBE2znAJOE4bbr Qw== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0b-0016f401.pphosted.com with ESMTP id 30263kb5gn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 29 Mar 2020 07:43:38 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 29 Mar 2020 07:43:36 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sun, 29 Mar 2020 07:43:36 -0700 Received: from jerin-lab.marvell.com (jerin-lab.marvell.com [10.28.34.14]) by maili.marvell.com (Postfix) with ESMTP id 31D9B3F703F; Sun, 29 Mar 2020 07:43:33 -0700 (PDT) From: To: Bruce Richardson CC: , , , , , Jerin Jacob Date: Sun, 29 Mar 2020 20:13:11 +0530 Message-ID: <20200329144342.1543749-3-jerinj@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200329144342.1543749-1-jerinj@marvell.com> References: <20200325211603.240288-1-jerinj@marvell.com> <20200329144342.1543749-1-jerinj@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.645 definitions=2020-03-29_05:2020-03-27, 2020-03-29 signatures=0 Subject: [dpdk-dev] [PATCH v3 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/common/include/rte_lcore.h | 17 +++++++++++++++++ lib/librte_eal/freebsd/eal/eal_thread.c | 9 +++++++++ lib/librte_eal/linux/eal/eal_thread.c | 15 +++++++++++++++ lib/librte_eal/rte_eal_version.map | 1 + 4 files changed, 42 insertions(+) diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/common/include/rte_lcore.h index 476b8ef3a..339046bc8 100644 --- a/lib/librte_eal/common/include/rte_lcore.h +++ b/lib/librte_eal/common/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/freebsd/eal/eal_thread.c b/lib/librte_eal/freebsd/eal/eal_thread.c index 309b58726..ae7b57672 100644 --- a/lib/librte_eal/freebsd/eal/eal_thread.c +++ b/lib/librte_eal/freebsd/eal/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/linux/eal/eal_thread.c b/lib/librte_eal/linux/eal/eal_thread.c index 379773b68..3f82b286c 100644 --- a/lib/librte_eal/linux/eal/eal_thread.c +++ b/lib/librte_eal/linux/eal/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; };