On Tue, Jan 17, 2023 at 11:51 PM Tyler Retzlaff <roret...@linux.microsoft.com> wrote: > > 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. > * limit use of this very platform glibc specific function to the single > place it is used. > * change the return type to void since the single use cannot > meaningfully check for failure given the platform defined behavior. > * change the thread id type to be rte_thread_t. > * rename the function rte_thread_get_name to be consistent with the > exported rte_thread_set_name. > > Signed-off-by: Tyler Retzlaff <roret...@linux.microsoft.com>
Trace changes are looks good to me. For trace, Acked-by: Jerin Jacob <jer...@marvell.com> > --- > 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 > -- > 1.8.3.1 >