From patchwork Wed Jun 22 20:26:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 113268 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 5F184A034C; Wed, 22 Jun 2022 22:26:26 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E710D40A87; Wed, 22 Jun 2022 22:26:25 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 22F6340A84 for ; Wed, 22 Jun 2022 22:26:24 +0200 (CEST) Received: by linux.microsoft.com (Postfix, from userid 1086) id 5DD5720C5A72; Wed, 22 Jun 2022 13:26:23 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 5DD5720C5A72 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1655929583; bh=J3Lu+RWhQpFI21xAa+SN1JVHsRMsZkZZBd/12gCdzkM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZuzJH9smSNekNrz0viFUSRCsdIND2GUD2z1SJw0UZa9JB2cGC8lPd/Cxaj/XWExyZ wfbjzs+QTLZs0OFmWAlGkZD7mfWx3P+b+0LFpEIuWnDG5AFrnT+x4H0AXML6u56yaT dLFp50Y6IEXC+Kj1+bsmDUyY6EjL6ZCNn4MgfeNc= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, dmitry.kozliuk@gmail.com, anatoly.burakov@intel.com, Tyler Retzlaff Subject: [PATCH v3 0/6] add thread lifetime and attributes API Date: Wed, 22 Jun 2022 13:26:15 -0700 Message-Id: <1655929581-12366-1-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1654783134-13303-1-git-send-email-roretzla@linux.microsoft.com> References: <1654783134-13303-1-git-send-email-roretzla@linux.microsoft.com> 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 rte thread lifetime and attributes api. with these api additions there is now sufficient platform abstracted thread api to remove the use of pthread in the unit tests. v3: * change rte_thread_func return type to uint32_t for exit value. * change rte_thread_join retval to be uint32_t (matched with the return value from rte_thread_func. * introduce a wrapper for rte_thread_func on posix platforms to adapt differences between rte_thread_func and pthread start_routine. * remove interpretation / dereference of result from pthread_join in posix implementation of rte_thread_join. * fix leak of dynamically allocated thread_routine_ctx on windows in error paths. * don't cast and truncate NULL to integer value for rte_thread_join when pthread_join returns no result. v2: * split implementation of rte_thread_equal for windows / posix and use pthread_equal for posix platforms. * remove parameter validation assertions and instead return EINVAL for mandatory pointers to type that are NULL. * correct doxygen comment parameter name args -> arg Tyler Retzlaff (6): eal: add thread attributes eal: add thread lifetime management eal: add basic rte thread ID equal API test/threads: add tests for thread lifetime API test/threads: add tests for thread attributes API test/threads: remove unit test use of pthread app/test/test_threads.c | 134 ++++++++++++++++++++++-- lib/eal/common/meson.build | 1 + lib/eal/common/rte_thread.c | 60 +++++++++++ lib/eal/include/rte_thread.h | 187 ++++++++++++++++++++++++++++++++++ lib/eal/unix/rte_thread.c | 141 ++++++++++++++++++++++++++ lib/eal/version.map | 8 ++ lib/eal/windows/include/sched.h | 2 +- lib/eal/windows/rte_thread.c | 219 ++++++++++++++++++++++++++++++++-------- 8 files changed, 703 insertions(+), 49 deletions(-) create mode 100644 lib/eal/common/rte_thread.c