From patchwork Tue Jan 24 18:12:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 122505 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 882D04247D; Tue, 24 Jan 2023 19:12:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6046842D4C; Tue, 24 Jan 2023 19:12:28 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 697D540684 for ; Tue, 24 Jan 2023 19:12:23 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id A76DA20E2D3C; Tue, 24 Jan 2023 10:12:22 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com A76DA20E2D3C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1674583942; bh=BLREEzvyDGPaAdEULmaoXB4DKJSPtjt9VDCzebhLk2g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VAze76x3w3DhPkJ01MIag1uAbYjNXO2Pd1WOGNWrsWp1rViP+Dy7uVwhU59/rJeBo 8H9LnqCMJtl9MxqCxC9yIBm9j6/qiuh+FmEZ6kNJRQ0X2kIEibIEbDU6itLoP21mjd JIpi3d5y+lnq6oiTtLFC3N+JeQiAWsrwzDF/wKzE= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, david.marchand@redhat.com, jerinjacobk@gmail.com, mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v10 1/4] eal: add thread set name API operating on rte thread Date: Tue, 24 Jan 2023 10:12:18 -0800 Message-Id: <1674583941-16964-2-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1674583941-16964-1-git-send-email-roretzla@linux.microsoft.com> References: <1670439617-9054-1-git-send-email-roretzla@linux.microsoft.com> <1674583941-16964-1-git-send-email-roretzla@linux.microsoft.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Add a rte_thread_set_name that sets the name of an rte_thread_t thread. This is a replacement for the rte_thread_setname(pthread_t, ...) which exposes platform-specific details. Introduces Windows implementation for rte_thread_set_name not previously available on Windows. Adapt drivers/mlx5 to use the new internal rte_thread_set_name API instead of the soon to be deprecated rte_thread_setname API. Signed-off-by: Tyler Retzlaff Acked-by: Morten Brørup --- drivers/net/mlx5/mlx5_hws_cnt.c | 3 ++- drivers/vdpa/mlx5/mlx5_vdpa_event.c | 3 +-- lib/eal/common/eal_common_thread.c | 8 ++----- lib/eal/freebsd/eal.c | 3 +-- lib/eal/freebsd/eal_thread.c | 11 ++++++++++ lib/eal/include/rte_thread.h | 20 +++++++++++++++++ lib/eal/linux/eal.c | 6 +----- lib/eal/linux/eal_thread.c | 22 +++++++++++++++++++ lib/eal/version.map | 3 +++ lib/eal/windows/rte_thread.c | 43 +++++++++++++++++++++++++++++++++++++ 10 files changed, 106 insertions(+), 16 deletions(-) diff --git a/drivers/net/mlx5/mlx5_hws_cnt.c b/drivers/net/mlx5/mlx5_hws_cnt.c index 51704ef..05cc954 100644 --- a/drivers/net/mlx5/mlx5_hws_cnt.c +++ b/drivers/net/mlx5/mlx5_hws_cnt.c @@ -465,7 +465,8 @@ struct mlx5_hws_cnt_pool * } snprintf(name, CNT_THREAD_NAME_MAX - 1, "%s/svc@%d", sh->ibdev_name, service_core); - rte_thread_setname(sh->cnt_svc->service_thread, name); + rte_thread_set_name((rte_thread_t){(uintptr_t)sh->cnt_svc->service_thread}, + name); CPU_SET(service_core, &cpuset); pthread_setaffinity_np(sh->cnt_svc->service_thread, sizeof(cpuset), &cpuset); diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_event.c b/drivers/vdpa/mlx5/mlx5_vdpa_event.c index 4d81976..f3d392c 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa_event.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa_event.c @@ -547,8 +547,7 @@ goto out; } snprintf(name, sizeof(name), "vDPA-mlx5-%d", priv->vid); - if (rte_thread_setname(priv->timer_tid, name) != 0) - DRV_LOG(DEBUG, "Cannot set timer thread name."); + rte_thread_set_name((rte_thread_t){(uintptr_t)priv->timer_tid}, name); out: if (attrp != NULL) pthread_attr_destroy(attrp); diff --git a/lib/eal/common/eal_common_thread.c b/lib/eal/common/eal_common_thread.c index 38d83a6..3181515 100644 --- a/lib/eal/common/eal_common_thread.c +++ b/lib/eal/common/eal_common_thread.c @@ -288,12 +288,8 @@ static void *ctrl_thread_init(void *arg) return -ret; } - if (name != NULL) { - ret = rte_thread_setname(*thread, name); - if (ret < 0) - RTE_LOG(DEBUG, EAL, - "Cannot set name for ctrl thread\n"); - } + if (name != NULL) + rte_thread_set_name((rte_thread_t){(uintptr_t)*thread}, name); /* Wait for the control thread to initialize successfully */ while ((ctrl_thread_status = diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c index 8db5007..9303401 100644 --- a/lib/eal/freebsd/eal.c +++ b/lib/eal/freebsd/eal.c @@ -817,8 +817,7 @@ static void rte_eal_init_alert(const char *msg) /* Set thread_name for aid in debugging. */ snprintf(thread_name, sizeof(thread_name), "rte-worker-%d", i); - rte_thread_setname((pthread_t)lcore_config[i].thread_id.opaque_id, - 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, &lcore_config[i].cpuset); diff --git a/lib/eal/freebsd/eal_thread.c b/lib/eal/freebsd/eal_thread.c index ab81b52..b69f5d3 100644 --- a/lib/eal/freebsd/eal_thread.c +++ b/lib/eal/freebsd/eal_thread.c @@ -32,6 +32,17 @@ int rte_sys_gettid(void) return (int)lwpid; } +void rte_thread_set_name(rte_thread_t thread_id, const char *thread_name) +{ + char truncated[RTE_MAX_THREAD_NAME_LEN]; + const size_t truncatedsz = sizeof(truncated); + + if (strlcpy(truncated, thread_name, truncatedsz) >= truncatedsz) + RTE_LOG(DEBUG, EAL, "Truncated thread name\n"); + + pthread_set_name_np((pthread_t)thread_id.opaque_id, truncated); +} + int rte_thread_setname(pthread_t id, const char *name) { /* this BSD function returns no error */ diff --git a/lib/eal/include/rte_thread.h b/lib/eal/include/rte_thread.h index b9edf70..d247930 100644 --- a/lib/eal/include/rte_thread.h +++ b/lib/eal/include/rte_thread.h @@ -146,6 +146,26 @@ int rte_thread_create(rte_thread_t *thread_id, * @warning * @b EXPERIMENTAL: this API may change without prior notice. * + * Set the name of the thread. + * This API is a noop if the underlying platform does not + * support setting the thread name or the platform-specific + * API used to set the thread name fails. + * + * @param thread_id + * The id of the thread to set name. + * + * @param thread_name + * The name to set. Truncated to RTE_MAX_THREAD_NAME_LEN, + * including terminating NUL if necessary. + */ +__rte_experimental +void +rte_thread_set_name(rte_thread_t thread_id, const char *thread_name); + +/** + * @warning + * @b EXPERIMENTAL: this API may change without prior notice. + * * Check if 2 thread ids are equal. * * @param t1 diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c index 60298c0..d4c3507 100644 --- a/lib/eal/linux/eal.c +++ b/lib/eal/linux/eal.c @@ -1261,11 +1261,7 @@ static void rte_eal_init_alert(const char *msg) /* Set thread_name for aid in debugging. */ snprintf(thread_name, sizeof(thread_name), "rte-worker-%d", i); - ret = rte_thread_setname((pthread_t)lcore_config[i].thread_id.opaque_id, - thread_name); - if (ret != 0) - RTE_LOG(DEBUG, EAL, - "Cannot set name for lcore thread\n"); + rte_thread_set_name(lcore_config[i].thread_id, thread_name); ret = rte_thread_set_affinity_by_id(lcore_config[i].thread_id, &lcore_config[i].cpuset); diff --git a/lib/eal/linux/eal_thread.c b/lib/eal/linux/eal_thread.c index 625bde6..d5fddab 100644 --- a/lib/eal/linux/eal_thread.c +++ b/lib/eal/linux/eal_thread.c @@ -10,6 +10,7 @@ #include #include +#include #include /* require calling thread tid by gettid() */ @@ -18,6 +19,27 @@ int rte_sys_gettid(void) return (int)syscall(SYS_gettid); } +void rte_thread_set_name(rte_thread_t thread_id, const char *thread_name) +{ + int ret = ENOSYS; +#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) +#if __GLIBC_PREREQ(2, 12) + char truncated[RTE_MAX_THREAD_NAME_LEN]; + const size_t truncatedsz = sizeof(truncated); + + if (strlcpy(truncated, thread_name, truncatedsz) >= truncatedsz) + RTE_LOG(DEBUG, EAL, "Truncated thread name\n"); + + ret = pthread_setname_np((pthread_t)thread_id.opaque_id, truncated); +#endif +#endif + RTE_SET_USED(thread_id); + RTE_SET_USED(thread_name); + + if (ret != 0) + RTE_LOG(DEBUG, EAL, "Failed to set thread name\n"); +} + int rte_thread_setname(pthread_t id, const char *name) { int ret = ENOSYS; diff --git a/lib/eal/version.map b/lib/eal/version.map index 7ad12a7..c98ba71 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -440,6 +440,9 @@ EXPERIMENTAL { rte_thread_detach; rte_thread_equal; rte_thread_join; + + # added in 23.03 + rte_thread_set_name; }; INTERNAL { diff --git a/lib/eal/windows/rte_thread.c b/lib/eal/windows/rte_thread.c index 1c1e9d0..8556a84 100644 --- a/lib/eal/windows/rte_thread.c +++ b/lib/eal/windows/rte_thread.c @@ -4,7 +4,9 @@ */ #include +#include +#include #include #include #include @@ -305,6 +307,47 @@ struct thread_routine_ctx { return thread_id; } +void +rte_thread_set_name(rte_thread_t thread_id, const char *thread_name) +{ + int ret = 0; + wchar_t wname[RTE_MAX_THREAD_NAME_LEN]; + mbstate_t state = {0}; + size_t rv; + HANDLE thread_handle; + + thread_handle = OpenThread(THREAD_ALL_ACCESS, FALSE, + thread_id.opaque_id); + if (thread_handle == NULL) { + ret = thread_log_last_error("OpenThread()"); + goto cleanup; + } + + memset(wname, 0, sizeof(wname)); + rv = mbsrtowcs(wname, &thread_name, RTE_DIM(wname) - 1, &state); + if (rv == (size_t)-1) { + ret = EILSEQ; + goto cleanup; + } + +#ifndef RTE_TOOLCHAIN_GCC + if (FAILED(SetThreadDescription(thread_handle, wname))) { + ret = EINVAL; + goto cleanup; + } +#else + ret = ENOTSUP; + goto cleanup; +#endif + +cleanup: + if (thread_handle != NULL) + CloseHandle(thread_handle); + + if (ret != 0) + RTE_LOG(DEBUG, EAL, "Failed to set thread name\n"); +} + int rte_thread_get_priority(rte_thread_t thread_id, enum rte_thread_priority *priority) From patchwork Tue Jan 24 18:12:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 122504 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8720D4247D; Tue, 24 Jan 2023 19:12:40 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7F49142D47; Tue, 24 Jan 2023 19:12:27 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 649BC40223 for ; Tue, 24 Jan 2023 19:12:23 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id B40AD20E2D3F; Tue, 24 Jan 2023 10:12:22 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B40AD20E2D3F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1674583942; bh=/WfmXJJxKm+mal8OfLlKYUyuNv5oCE/YuA3TJ0dLmR0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TJN190wRLE+HmoKJTlkGkPNm9IQMRrT/TUMmFOZLZLsAob0C4Z+WURfSp8ciBBONa DL/oFmaVcKLuxLd40sscXG/SPQJMqpGqmmVvZg2DGiyMW+pumXhV3HC4rwbUS6y5RN YMGYbeRyviAdzaiT3p51uFoI4hGluYNzFuGPYfhw= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, david.marchand@redhat.com, jerinjacobk@gmail.com, mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v10 2/4] eal: remove thread getname API Date: Tue, 24 Jan 2023 10:12:19 -0800 Message-Id: <1674583941-16964-3-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1674583941-16964-1-git-send-email-roretzla@linux.microsoft.com> References: <1670439617-9054-1-git-send-email-roretzla@linux.microsoft.com> <1674583941-16964-1-git-send-email-roretzla@linux.microsoft.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Remove the rte_thread_getname API. The API is __rte_experimental and requires no deprecation notice. Fold the platform specific variants into the one place it is used as a special case to retain the functionality for linux only. Adjust the function as follows. * reduce scope where thread_get_name can be used to eal_common_trace.c * change the return type to void since the return value is not consistent reportable depending on glibc version. * change the thread id type to be rte_thread_t. Signed-off-by: Tyler Retzlaff Acked-by: Morten Brørup Acked-by: Jerin Jacob --- lib/eal/common/eal_common_trace.c | 15 ++++++++++++++- lib/eal/freebsd/eal_thread.c | 9 --------- lib/eal/include/rte_lcore.h | 17 ----------------- lib/eal/linux/eal_thread.c | 15 --------------- lib/eal/version.map | 1 - 5 files changed, 14 insertions(+), 43 deletions(-) diff --git a/lib/eal/common/eal_common_trace.c b/lib/eal/common/eal_common_trace.c index 5caaac8..75162b7 100644 --- a/lib/eal/common/eal_common_trace.c +++ b/lib/eal/common/eal_common_trace.c @@ -298,6 +298,19 @@ rte_trace_mode rte_trace_mode_get(void) trace_point_dump(f, tp); } +static void +thread_get_name(rte_thread_t id, char *name, size_t len) +{ +#if defined(RTE_EXEC_ENV_LINUX) && defined(__GLIBC__) && defined(__GLIBC_PREREQ) +#if __GLIBC_PREREQ(2, 12) + pthread_getname_np((pthread_t)id.opaque_id, name, len); +#endif +#endif + RTE_SET_USED(id); + RTE_SET_USED(name); + RTE_SET_USED(len); +} + void __rte_trace_mem_per_thread_alloc(void) { @@ -356,7 +369,7 @@ rte_trace_mode rte_trace_mode_get(void) /* Store the thread name */ char *name = header->stream_header.thread_name; memset(name, 0, __RTE_TRACE_EMIT_STRING_LEN_MAX); - rte_thread_getname(pthread_self(), name, + thread_get_name(rte_thread_self(), name, __RTE_TRACE_EMIT_STRING_LEN_MAX); trace->lcore_meta[count].mem = header; diff --git a/lib/eal/freebsd/eal_thread.c b/lib/eal/freebsd/eal_thread.c index b69f5d3..3227d9b 100644 --- a/lib/eal/freebsd/eal_thread.c +++ b/lib/eal/freebsd/eal_thread.c @@ -49,12 +49,3 @@ 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/eal/include/rte_lcore.h b/lib/eal/include/rte_lcore.h index 6938c3f..9c78650 100644 --- a/lib/eal/include/rte_lcore.h +++ b/lib/eal/include/rte_lcore.h @@ -352,23 +352,6 @@ enum rte_lcore_role_t { 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); - -/** * Register current non-EAL thread as a lcore. * * @note This API is not compatible with the multi-process feature: diff --git a/lib/eal/linux/eal_thread.c b/lib/eal/linux/eal_thread.c index d5fddab..c07ad9d 100644 --- a/lib/eal/linux/eal_thread.c +++ b/lib/eal/linux/eal_thread.c @@ -55,18 +55,3 @@ 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/eal/version.map b/lib/eal/version.map index c98ba71..6523102 100644 --- a/lib/eal/version.map +++ b/lib/eal/version.map @@ -369,7 +369,6 @@ EXPERIMENTAL { __rte_trace_point_register; per_lcore_trace_mem; per_lcore_trace_point_sz; - rte_thread_getname; # WINDOWS_NO_EXPORT rte_trace_dump; # WINDOWS_NO_EXPORT rte_trace_is_enabled; # WINDOWS_NO_EXPORT rte_trace_metadata_dump; # WINDOWS_NO_EXPORT From patchwork Tue Jan 24 18:12:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 122502 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 87BC44247D; Tue, 24 Jan 2023 19:12:29 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CF7BE42B8B; Tue, 24 Jan 2023 19:12:25 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 6DAB140A89 for ; Tue, 24 Jan 2023 19:12:23 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id C0B9120E34C5; Tue, 24 Jan 2023 10:12:22 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C0B9120E34C5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1674583942; bh=Ts6NDenqRvm7ePZMbZeV+K+dn2zalCeuMs72+s2dwjY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=L2cC0GdDMfp/WC0+zWc1Zw9zgg+uaBfdJ9MbgcFNdhz5m12l4cdtS1dLwCFmatvgo 56KtnHKlmUkY1P4wo8KKrAwx7tnClsm4X4J5rVFuASyiE47bkn2N27KN7tq+3oS1Hg 7ZyrCa8qSuzQHzzRkIKGbOoVn4LczQNTJn8u9tq0= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, david.marchand@redhat.com, jerinjacobk@gmail.com, mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v10 3/4] eal: set thread name on Windows worker threads Date: Tue, 24 Jan 2023 10:12:20 -0800 Message-Id: <1674583941-16964-4-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1674583941-16964-1-git-send-email-roretzla@linux.microsoft.com> References: <1670439617-9054-1-git-send-email-roretzla@linux.microsoft.com> <1674583941-16964-1-git-send-email-roretzla@linux.microsoft.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Bring Windows EAL worker thread initialization in line with linux & freebsd by setting the worker thread name using the new platform agnostic rte_thread_set_name API. Signed-off-by: Tyler Retzlaff Acked-by: Morten Brørup --- lib/eal/windows/eal.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c index b9f95ed..e7d405b 100644 --- a/lib/eal/windows/eal.c +++ b/lib/eal/windows/eal.c @@ -282,6 +282,7 @@ enum rte_proc_type_t enum rte_iova_mode iova_mode; int ret; char cpuset[RTE_CPU_AFFINITY_STR_LEN]; + char thread_name[RTE_MAX_THREAD_NAME_LEN]; eal_log_init(NULL, 0); @@ -437,6 +438,12 @@ enum rte_proc_type_t if (rte_thread_create(&lcore_config[i].thread_id, NULL, eal_thread_loop, (void *)(uintptr_t)i) != 0) rte_panic("Cannot create thread\n"); + + /* Set thread name for aid in debugging. */ + snprintf(thread_name, sizeof(thread_name), + "rte-worker-%d", i); + rte_thread_set_name(lcore_config[i].thread_id, thread_name); + ret = rte_thread_set_affinity_by_id(lcore_config[i].thread_id, &lcore_config[i].cpuset); if (ret != 0) From patchwork Tue Jan 24 18:12:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 122503 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B585A4247D; Tue, 24 Jan 2023 19:12:34 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A103D42D3B; Tue, 24 Jan 2023 19:12:26 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 78DFD4114A for ; Tue, 24 Jan 2023 19:12:23 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id CE60320E34CB; Tue, 24 Jan 2023 10:12:22 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com CE60320E34CB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1674583942; bh=wiHnOvZ5Gy0RFoFUTDyAwZ08c053zlC+YCgF7eMYpKo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pZJEk8aOOlNDa41tDsNJso+RbVEbJNtIlUeVEIfDAvRViQSP8s6yx+FBD2hpkd0Ht Q+k9hA9yrXWyjsD+M9PGP4enV1qA+B6vKXktgZfpGTjGORHms2s4OGDjzW5YGH+eRi Jp++u6rTZ4qogaau3S1v8ZJl8bhUuJvfwyskzzjg= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, david.marchand@redhat.com, jerinjacobk@gmail.com, mb@smartsharesystems.com, Tyler Retzlaff Subject: [PATCH v10 4/4] eal: deprecation notice for rte thread setname API Date: Tue, 24 Jan 2023 10:12:21 -0800 Message-Id: <1674583941-16964-5-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1674583941-16964-1-git-send-email-roretzla@linux.microsoft.com> References: <1670439617-9054-1-git-send-email-roretzla@linux.microsoft.com> <1674583941-16964-1-git-send-email-roretzla@linux.microsoft.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Notify deprecation of rte_thread_setname API, it will be removed as it exposes platform-specific thread details. The functionality it provided is now available via the new rte_lcore_set_name API. Signed-off-by: Tyler Retzlaff Acked-by: Morten Brørup Acked-by: David Marchand Acked-by: Thomas Monjalon --- doc/guides/rel_notes/deprecation.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index e18ac34..bae7441 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -18,6 +18,11 @@ Deprecation Notices in the future. Applications can use ``devtools/cocci/func_or_ret.cocci`` to update their code. +* eal: The function ``rte_thread_setname`` is planned to be deprecated + starting with the 23.07 release subject to the replacement API + rte_thread_set_name being marked as stable and planned to be removed + by the 23.11 release. + * rte_atomicNN_xxx: These APIs do not take memory order parameter. This does not allow for writing optimized code for all the CPU architectures supported in DPDK. DPDK has adopted the atomic operations from