[PATCH v5 0/3] eal: deprecate last use of pthread_t in public API

Tyler Retzlaff roretzla at linux.microsoft.com
Tue Jan 31 21:33:02 CET 2023


top-post

this is a re-submission of v5 of the series due to a mistake i made
in the first submission that caused it not to be correctly submitted
to patchwork.

apologies for the noise.
    
On Tue, Jan 31, 2023 at 12:30:14PM -0800, Tyler Retzlaff wrote:
> Announce deprecation of rte_ctrl_thread_create API which is the final
> remaining stable API exposing pthread_t.
> 
> Provide an equivalent replacement API rte_control_thread_create that
> uses the new rte_thread_t type.
> 
> Provide a unit test for the new rte_control_thread_create API.
> 
> Add missing doxygen index for thread / rte_thread.h.
> 
> Notice!
> 
> To limit compatibility regression risk and ease removal of the
> existing rte_ctrl_thread_create in the future duplicate most of the
> existing implementation rather than try to have it accommodate both
> public API contracts.
> 
> The duplication, the union introduced to support it along with remaining
> internal pthread_xxx calls will be removed when rte_ctrl_thread_create is
> finally removed.
> 
> The old unit test for rte_ctrl_thread_create is kept in place to guarantee
> correct behavior while deprecated and will be removed when
> rte_ctrl_thread_create is finally removed.
> 
> Series-acked-by: Morten Brørup <mb at smartsharesystems.com>
> Reviewed-by: Mattias Rönnblom <mattias.ronnblom at ericsson.com>
> 
> v5:
>   * rebase series now that rte_thread_set_name has been merged,
>     remove now unnecessary casts.
>   * combine patch adding rte_control_thread_create and patch
>     adding unit test into patch 1.
>   * reword deprecation notice to indicate which release we
>     intend to mark rte_ctrl_thread_create deprecated and which
>     release we intend to remove the same.
>   * adjust deprecation notice commit subject based on previous
>     deprecation notice series feedback.
>   * add (mostly unrelated) patch to series to add thread / rte_thread.h
>     to doxygen index (an oversight missed from previous series).
> 
> v4:
>   * fix missing whitespace in deprecation notice text
>   * remove comment in rte_control_thread_create implementation
>     referring to sched_yield as requested by community feedback
>   * add missing parameter name to function pointer declaration
> 
> v3:
>   * use {ctrl,control}_start_routine for start_routine field names
>   * fix conditional evaluation style p == NULL instead of !p
>   * tweak documentation comment for rte_control_thread_create
>     - "the EAL threads are then excluded"
>     - note RTE_MAX_THREAD_NAME_LEN preprocessor definition
>       is the name size (including terminating NUL) limit
>   * add missing cast to uintptr_t
> 
> v2:
>   * correct style error void * (*foo) -> void *(*foo)
>   * place retval on lhs of comparison 0 != foo() -> foo() != 0
>   * add missing commit description on patch 3/3
>   * add cast uintptr_t to pthread_t where appropriate
>   * fix doxygen @param names to match parameter names
> 
> Tyler Retzlaff (3):
>   eal: add rte control thread create API
>   doc: add missing index entry for thread
>   doc: announce deprecation of thread ctrl create function
> 
>  app/test/test_lcores.c               | 41 +++++++++++++++++
>  doc/api/doxy-api-index.md            |  1 +
>  doc/guides/rel_notes/deprecation.rst |  5 +++
>  lib/eal/common/eal_common_thread.c   | 85 ++++++++++++++++++++++++++++++++----
>  lib/eal/include/rte_thread.h         | 33 ++++++++++++++
>  lib/eal/version.map                  |  1 +
>  6 files changed, 158 insertions(+), 8 deletions(-)
> 
> -- 
> 1.8.3.1


More information about the dev mailing list