From patchwork Tue Jan 31 19:46:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 122762 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 B5C9741B92; Tue, 31 Jan 2023 20:47:01 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A593841151; Tue, 31 Jan 2023 20:46:56 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 1E9FC4067B for ; Tue, 31 Jan 2023 20:46:55 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 612E320D5F26; Tue, 31 Jan 2023 11:46:54 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 612E320D5F26 From: Tyler Retzlaff To: dev@dpdk.org Cc: david.marchand@redhat.com, thomas@monjalon.net, olivier.matz@6wind.com, stephen@networkplumber.org, mb@smartsharesystems.com, hofors@lysator.liu.se, Tyler Retzlaff Subject: [PATCH v5 0/3] eal: deprecate last use of pthread_t in public API Date: Tue, 31 Jan 2023 11:46:45 -0800 Message-Id: <1675194408-5199-1-git-send-email-roretzla@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1670271868-11364-1-git-send-email-roretzla@linux.microsoft.com> References: <1670271868-11364-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 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 Reviewed-by: Mattias Rönnblom 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(-)