From patchwork Tue Jan 24 18:02:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 122500 X-Patchwork-Delegate: thomas@monjalon.net 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 880A34247A; Tue, 24 Jan 2023 19:03:05 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D752F42D46; Tue, 24 Jan 2023 19:02:43 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id A596E40684 for ; Tue, 24 Jan 2023 19:02:38 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id E10FD20E2D3F; Tue, 24 Jan 2023 10:02:37 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E10FD20E2D3F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1674583357; bh=BLREEzvyDGPaAdEULmaoXB4DKJSPtjt9VDCzebhLk2g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KBOeSPm6/rPYIYCeREWa15YBzcSjNqxjJF2c4wVFQmXJ/UpZZwVRPpHO0Yg67feJZ qobMrzEqfc3of2iRsJdXV/9P9QZX443MvKNRCNHOuUerBj+0V0JvVoaCg3NawbPZ8w rYE4cfdzeA8TLjk+/AT4S7eQPzmdVSeAWNPHelNI= 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 v9 1/4] eal: add thread set name API operating on rte thread Date: Tue, 24 Jan 2023 10:02:28 -0800 Message-Id: <1674583351-15292-2-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1674583351-15292-1-git-send-email-roretzla@linux.microsoft.com> References: <1670439617-9054-1-git-send-email-roretzla@linux.microsoft.com> <1674583351-15292-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:02:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 122497 X-Patchwork-Delegate: thomas@monjalon.net 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 81D584247A; Tue, 24 Jan 2023 19:02:45 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 28DCB427EE; Tue, 24 Jan 2023 19:02:41 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 8BB1E40223 for ; Tue, 24 Jan 2023 19:02:38 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id EDB5820E34C5; Tue, 24 Jan 2023 10:02:37 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com EDB5820E34C5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1674583357; bh=/WfmXJJxKm+mal8OfLlKYUyuNv5oCE/YuA3TJ0dLmR0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ivJUBqEzqLMpvpC3uLYCUkdYQxtohGZGOK1B5a7YeCwudBu01Mkj5Oz2D+gqEr4sv +WlgHb+U3p5tXXVW3DAwkXs4WEFK3f+ztLaajNrttfDQgoQ9U+JnRs74PumJ2urYuX 4fuFCm9imVy4zedPMv5mseQAbIBGY+qaqug0Q1Co= 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 v9 2/4] eal: remove thread getname API Date: Tue, 24 Jan 2023 10:02:29 -0800 Message-Id: <1674583351-15292-3-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1674583351-15292-1-git-send-email-roretzla@linux.microsoft.com> References: <1670439617-9054-1-git-send-email-roretzla@linux.microsoft.com> <1674583351-15292-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:02:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 122498 X-Patchwork-Delegate: thomas@monjalon.net 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 2F7634247A; Tue, 24 Jan 2023 19:02:52 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0A7BC42D37; Tue, 24 Jan 2023 19:02:42 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id ACCEC40A89 for ; Tue, 24 Jan 2023 19:02:38 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 0657520E34CB; Tue, 24 Jan 2023 10:02:37 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 0657520E34CB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1674583358; bh=Ts6NDenqRvm7ePZMbZeV+K+dn2zalCeuMs72+s2dwjY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nmtP0Ki51hAdz7pcAUEMwP5CBVy+XVB438PSQGZDO+IlhEmC2uveicHk5opBYUP4v iezZWFkLScx/9OaS4JCn4WPHOf7M0tI5dqnMIrZo5MLPYdWWvRSVJoO9u3r3w8J/yD p9JwqVOSZedvgZOBNLMVURFpWuGgAzJqQCpJrUa0= 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 v9 3/4] eal: set thread name on Windows worker threads Date: Tue, 24 Jan 2023 10:02:30 -0800 Message-Id: <1674583351-15292-4-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1674583351-15292-1-git-send-email-roretzla@linux.microsoft.com> References: <1670439617-9054-1-git-send-email-roretzla@linux.microsoft.com> <1674583351-15292-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:02:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 122499 X-Patchwork-Delegate: thomas@monjalon.net 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 BDE5D4247A; Tue, 24 Jan 2023 19:02:58 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EADC442D3F; Tue, 24 Jan 2023 19:02:42 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id B1AC84113F for ; Tue, 24 Jan 2023 19:02:38 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 145C820E34CD; Tue, 24 Jan 2023 10:02:37 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 145C820E34CD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1674583358; bh=bquWnT26v6YDH7aj/cY8c0igM5gjFXsZ8el7rXJDfw0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e+gFDtpBKdGmacHUDs56TzuKEpov/d9i3KBzmCdshaIdHb1bpK92sBBQ3BALJxk1r TJKXznyFYqSQeuLvpk4RQXbCQ6jEyhbi/CWk7wX057FosQT8Z7yVzS9V60m40YCz2h jj5pFDQPcCSWmWotrKFACVaZxxM8Ik3QJxm3a2zU= 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 v9 4/4] eal: deprecation notice for rte thread setname API Date: Tue, 24 Jan 2023 10:02:31 -0800 Message-Id: <1674583351-15292-5-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1674583351-15292-1-git-send-email-roretzla@linux.microsoft.com> References: <1670439617-9054-1-git-send-email-roretzla@linux.microsoft.com> <1674583351-15292-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 --- 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..5eb930f 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.03 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