From patchwork Fri Mar 17 22:34:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 125243 X-Patchwork-Delegate: david.marchand@redhat.com 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 8D7A041EC5; Fri, 17 Mar 2023 23:35:10 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2B4CE43013; Fri, 17 Mar 2023 23:34:54 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 681DE42FFA for ; Fri, 17 Mar 2023 23:34:49 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id A4FE12057BE9; Fri, 17 Mar 2023 15:34:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com A4FE12057BE9 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1679092488; bh=H8NWCjWV2qCiPFBYFtJgbAO2wFmOGb54CV1nrOl/rMo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A0Gcg7kHasdao1QB/dAgBnT9mAyZD2eRGGUmSmxJr47eJFwJ7RpP1Gwo8jz/Cw6tv i4REClmBoeaY9v86eYV1JMzy3jFDfqyXsPRmznfCHmY4raEPPtIbEkOyrXv4S7BTGZ 9unLZk05G6ibnoxOeD6kP0cip0I0KKsPC8qt5H8w= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH 1/6] dma/skeleton: use rte thread API Date: Fri, 17 Mar 2023 15:34:15 -0700 Message-Id: <1679092460-9930-2-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679092460-9930-1-git-send-email-roretzla@linux.microsoft.com> References: <1679092460-9930-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 Update driver to use rte thread API where available instead of pthread as a prerequisite to removing pthread stubs on Windows. Signed-off-by: Tyler Retzlaff --- drivers/dma/skeleton/skeleton_dmadev.c | 15 ++++++++------- drivers/dma/skeleton/skeleton_dmadev.h | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/dma/skeleton/skeleton_dmadev.c b/drivers/dma/skeleton/skeleton_dmadev.c index daf35ec..2ec10db 100644 --- a/drivers/dma/skeleton/skeleton_dmadev.c +++ b/drivers/dma/skeleton/skeleton_dmadev.c @@ -5,6 +5,8 @@ #include #include +#include + #include #include #include @@ -53,7 +55,7 @@ return 0; } -static void * +static uint32_t cpucopy_thread(void *param) { #define SLEEP_THRESHOLD 10000 @@ -81,7 +83,7 @@ (void)rte_ring_enqueue(hw->desc_completed, (void *)desc); } - return NULL; + return 0; } static void @@ -126,7 +128,7 @@ rte_mb(); snprintf(name, sizeof(name), "dma_skel_%d", dev->data->dev_id); - ret = rte_ctrl_thread_create(&hw->thread, name, NULL, + ret = rte_thread_create_control(&hw->thread, name, NULL, cpucopy_thread, dev); if (ret) { SKELDMA_LOG(ERR, "Start cpucopy thread fail!"); @@ -135,8 +137,7 @@ if (hw->lcore_id != -1) { cpuset = rte_lcore_cpuset(hw->lcore_id); - ret = pthread_setaffinity_np(hw->thread, sizeof(cpuset), - &cpuset); + ret = rte_thread_get_affinity_by_id(hw->thread, &cpuset); if (ret) SKELDMA_LOG(WARNING, "Set thread affinity lcore = %d fail!", @@ -154,8 +155,8 @@ hw->exit_flag = true; rte_delay_ms(1); - (void)pthread_cancel(hw->thread); - pthread_join(hw->thread, NULL); + (void)pthread_cancel((pthread_t)hw->thread.opaque_id); + rte_thread_join(hw->thread, NULL); return 0; } diff --git a/drivers/dma/skeleton/skeleton_dmadev.h b/drivers/dma/skeleton/skeleton_dmadev.h index 6f89400..8670a68 100644 --- a/drivers/dma/skeleton/skeleton_dmadev.h +++ b/drivers/dma/skeleton/skeleton_dmadev.h @@ -5,9 +5,9 @@ #ifndef SKELETON_DMADEV_H #define SKELETON_DMADEV_H -#include #include +#include #define SKELDMA_ARG_LCORE "lcore" @@ -21,7 +21,7 @@ struct skeldma_desc { struct skeldma_hw { int lcore_id; /* cpucopy task affinity core */ int socket_id; - pthread_t thread; /* cpucopy task thread */ + rte_thread_t thread; /* cpucopy task thread */ volatile int exit_flag; /* cpucopy task exit flag */ struct skeldma_desc *desc_mem; From patchwork Fri Mar 17 22:34:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 125240 X-Patchwork-Delegate: david.marchand@redhat.com 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 48FD241EC5; Fri, 17 Mar 2023 23:34:51 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D6AC242FE8; Fri, 17 Mar 2023 23:34:50 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 5F20C40DF6 for ; Fri, 17 Mar 2023 23:34:49 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id B10E02057BEA; Fri, 17 Mar 2023 15:34:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B10E02057BEA DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1679092488; bh=bLhM8wHBeWKdRYbKi4pkuzhf4ZsxGYPZRqfwluMKfLw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qpgvXZ6uoWb16yPv2LMmK+Xp1J8NwmEi9D1RdXQ1CbdZS3pUbU5eTwP7YoAHYa2en GHjygGyEL5wj1zoKWR7PCLfGxJSYDrGYMRMzIIc2xKtTDk0o/z+2yLkBczAE6OXJOj MtvlycoodkVZJnjCTDlvB3FMAIvpEK2LoMvB5E/4= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH 2/6] net/ixgbe: use rte thread API Date: Fri, 17 Mar 2023 15:34:16 -0700 Message-Id: <1679092460-9930-3-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679092460-9930-1-git-send-email-roretzla@linux.microsoft.com> References: <1679092460-9930-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 Update driver to use rte thread API where available instead of pthread as a prerequisite to removing pthread stubs on Windows. Signed-off-by: Tyler Retzlaff --- drivers/net/ixgbe/ixgbe_ethdev.c | 10 +++++----- drivers/net/ixgbe/ixgbe_ethdev.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index 88118bc..3abe96e 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -236,7 +236,7 @@ static int ixgbe_dev_rss_reta_query(struct rte_eth_dev *dev, static int ixgbe_dev_interrupt_action(struct rte_eth_dev *dev); static void ixgbe_dev_interrupt_handler(void *param); static void ixgbe_dev_interrupt_delayed_handler(void *param); -static void *ixgbe_dev_setup_link_thread_handler(void *param); +static uint32_t ixgbe_dev_setup_link_thread_handler(void *param); static int ixgbe_dev_wait_setup_link_complete(struct rte_eth_dev *dev, uint32_t timeout_ms); @@ -4203,7 +4203,7 @@ static int ixgbevf_dev_xstats_get_names(__rte_unused struct rte_eth_dev *dev, return 1; } -static void * +static uint32_t ixgbe_dev_setup_link_thread_handler(void *param) { struct rte_eth_dev *dev = (struct rte_eth_dev *)param; @@ -4214,7 +4214,7 @@ static int ixgbevf_dev_xstats_get_names(__rte_unused struct rte_eth_dev *dev, u32 speed; bool autoneg = false; - pthread_detach(pthread_self()); + rte_thread_detach(rte_thread_self()); speed = hw->phy.autoneg_advertised; if (!speed) ixgbe_get_link_capabilities(hw, &speed, &autoneg); @@ -4223,7 +4223,7 @@ static int ixgbevf_dev_xstats_get_names(__rte_unused struct rte_eth_dev *dev, intr->flags &= ~IXGBE_FLAG_NEED_LINK_CONFIG; rte_atomic32_clear(&ad->link_thread_running); - return NULL; + return 0; } /* @@ -4323,7 +4323,7 @@ static int ixgbevf_dev_xstats_get_names(__rte_unused struct rte_eth_dev *dev, * when there is no link thread running. */ intr->flags |= IXGBE_FLAG_NEED_LINK_CONFIG; - if (rte_ctrl_thread_create(&ad->link_thread_tid, + if (rte_thread_create_control(&ad->link_thread_tid, "ixgbe-link-handler", NULL, ixgbe_dev_setup_link_thread_handler, diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h index 48290af..4332b2c 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.h +++ b/drivers/net/ixgbe/ixgbe_ethdev.h @@ -511,7 +511,7 @@ struct ixgbe_adapter { uint8_t pflink_fullchk; uint8_t mac_ctrl_frame_fwd; rte_atomic32_t link_thread_running; - pthread_t link_thread_tid; + rte_thread_t link_thread_tid; }; struct ixgbe_vf_representor { From patchwork Fri Mar 17 22:34:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 125242 X-Patchwork-Delegate: david.marchand@redhat.com 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 C8E8141EC5; Fri, 17 Mar 2023 23:35:03 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 04BA34300E; Fri, 17 Mar 2023 23:34:53 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 6534742FF8 for ; Fri, 17 Mar 2023 23:34:49 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id BD1912057BEB; Fri, 17 Mar 2023 15:34:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com BD1912057BEB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1679092488; bh=QQRnSbMdBGFVSbuZNticjgUYqzzR39/jjHlWnkC8eYk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dvyrxataFm8scP0xVeouuCPD++eFjEiuNHtOdFzzxvPLCEpkkK05zqVPwwRC0lzHq Y2PYq/WLWX4LE7I1kBgnW86WgwJHQQAFPq6DqoinviprrwHuILffCPmhf09TAOvbNa wWqE9xQ0/UGps5pRMYbPfMosmdeRxLs1UWlquOs8= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH 3/6] net/ice: use rte thread API Date: Fri, 17 Mar 2023 15:34:17 -0700 Message-Id: <1679092460-9930-4-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679092460-9930-1-git-send-email-roretzla@linux.microsoft.com> References: <1679092460-9930-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 Update driver to use rte thread API where available instead of pthread as a prerequisite to removing pthread stubs on Windows. Signed-off-by: Tyler Retzlaff --- drivers/net/ice/ice_dcf_parent.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/net/ice/ice_dcf_parent.c b/drivers/net/ice/ice_dcf_parent.c index 01e390d..3175d18 100644 --- a/drivers/net/ice/ice_dcf_parent.c +++ b/drivers/net/ice/ice_dcf_parent.c @@ -4,7 +4,6 @@ #include #include #include -#include #include #include @@ -115,7 +114,7 @@ struct ice_dcf_reset_event_param { pf_vsi_idx, vsi_ctx->vsi_num); } -static void* +static uint32_t ice_dcf_vsi_update_service_handler(void *param) { struct ice_dcf_reset_event_param *reset_param = param; @@ -124,7 +123,7 @@ struct ice_dcf_reset_event_param { container_of(hw, struct ice_dcf_adapter, real_hw); struct ice_adapter *parent_adapter = &adapter->parent; - pthread_detach(pthread_self()); + rte_thread_detach(rte_thread_self()); rte_delay_us(ICE_DCF_VSI_UPDATE_SERVICE_INTERVAL); @@ -154,7 +153,7 @@ struct ice_dcf_reset_event_param { free(param); - return NULL; + return 0; } static void @@ -163,7 +162,7 @@ struct ice_dcf_reset_event_param { #define THREAD_NAME_LEN 16 struct ice_dcf_reset_event_param *param; char name[THREAD_NAME_LEN]; - pthread_t thread; + rte_thread_t thread; int ret; param = malloc(sizeof(*param)); @@ -177,7 +176,7 @@ struct ice_dcf_reset_event_param { param->vf_id = vf_id; snprintf(name, sizeof(name), "ice-reset-%u", vf_id); - ret = rte_ctrl_thread_create(&thread, name, NULL, + ret = rte_thread_create_control(&thread, name, NULL, ice_dcf_vsi_update_service_handler, param); if (ret != 0) { PMD_DRV_LOG(ERR, "Failed to start the thread for reset handling"); From patchwork Fri Mar 17 22:34:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 125244 X-Patchwork-Delegate: david.marchand@redhat.com 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 D385241EC5; Fri, 17 Mar 2023 23:35:15 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 50ED343018; Fri, 17 Mar 2023 23:34:55 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 7FA1342FFC for ; Fri, 17 Mar 2023 23:34:49 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id C8E812057BEC; Fri, 17 Mar 2023 15:34:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C8E812057BEC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1679092488; bh=I/q+WmM7gq5ainbAJ/uAVTa+nptKRgKvJUTv9GhDpLo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hf6ki4D+5lsep/STf2NmNXsxpPxaPrQwTduorSEiHwPzwSWbvyz+QOF6RDm9C3Hd5 KohSbgpdKU8u3myBsCt1nH6/tJzo9U/L1TP1JeWCF5AbP59E2yVLc7HY8eNKk0p83Y HlpXMyONYBuTINbsYSa86d/5ShN/w1JN/bHk/A/g= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH 4/6] net/iavf: use rte thread API Date: Fri, 17 Mar 2023 15:34:18 -0700 Message-Id: <1679092460-9930-5-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679092460-9930-1-git-send-email-roretzla@linux.microsoft.com> References: <1679092460-9930-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 Update driver to use rte thread API where available instead of pthread as a prerequisite to removing pthread stubs on Windows. Signed-off-by: Tyler Retzlaff --- drivers/net/iavf/iavf_vchnl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c index 9adaadb..7a2be22 100644 --- a/drivers/net/iavf/iavf_vchnl.c +++ b/drivers/net/iavf/iavf_vchnl.c @@ -42,7 +42,7 @@ struct iavf_event_element { struct iavf_event_handler { uint32_t ndev; - pthread_t tid; + rte_thread_t tid; int fd[2]; pthread_mutex_t lock; TAILQ_HEAD(event_list, iavf_event_element) pending; @@ -59,7 +59,7 @@ struct iavf_event_handler { (var) = (tvar)) #endif -static void * +static uint32_t iavf_dev_event_handle(void *param __rte_unused) { struct iavf_event_handler *handler = &event_handler; @@ -84,7 +84,7 @@ struct iavf_event_handler { } } - return NULL; + return 0; } static void @@ -135,7 +135,7 @@ struct iavf_event_handler { TAILQ_INIT(&handler->pending); pthread_mutex_init(&handler->lock, NULL); - if (rte_ctrl_thread_create(&handler->tid, "iavf-event-thread", + if (rte_thread_create_control(&handler->tid, "iavf-event-thread", NULL, iavf_dev_event_handle, NULL)) { __atomic_sub_fetch(&handler->ndev, 1, __ATOMIC_RELAXED); return -1; @@ -152,14 +152,14 @@ struct iavf_event_handler { if (__atomic_sub_fetch(&handler->ndev, 1, __ATOMIC_RELAXED) != 0) return; - int unused = pthread_cancel(handler->tid); + int unused = pthread_cancel((pthread_t)handler->tid.opaque_id); RTE_SET_USED(unused); close(handler->fd[0]); close(handler->fd[1]); handler->fd[0] = -1; handler->fd[1] = -1; - pthread_join(handler->tid, NULL); + rte_thread_join(handler->tid, NULL); pthread_mutex_destroy(&handler->lock); struct iavf_event_element *pos, *save_next; From patchwork Fri Mar 17 22:34:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 125245 X-Patchwork-Delegate: david.marchand@redhat.com 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 33FD241EC5; Fri, 17 Mar 2023 23:35:23 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BACF643025; Fri, 17 Mar 2023 23:34:56 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 2555F42FE8 for ; Fri, 17 Mar 2023 23:34:50 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id D4D2C20C32D1; Fri, 17 Mar 2023 15:34:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com D4D2C20C32D1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1679092488; bh=bikV+G1auLeERTuFb8t7UBTufG9AAQfVxW30ET7n3xo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=of1vtzXBBvUXAGBSqVD7gakCdeYb+DkAF2BCs0ggTRpZVz/p21GLaNOu3LPB8lGza r/D05UR3M+mbK7x2w4z5wFJAv0je+HYuuWPBpxJfEuAWSMoaa16wJiqb6kokWdNkga 14UdsZyHAQ4U9LasKqHralVNF2ihFdBPrXHDYUSM= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH 5/6] eal: use rte thread API Date: Fri, 17 Mar 2023 15:34:19 -0700 Message-Id: <1679092460-9930-6-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679092460-9930-1-git-send-email-roretzla@linux.microsoft.com> References: <1679092460-9930-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 Update driver to use rte thread API where available instead of pthread as a prerequisite to removing pthread stubs on Windows. There is a single pthread_create still in use until rte_ctrl_thread_create is removed. Signed-off-by: Tyler Retzlaff --- lib/eal/common/eal_common_thread.c | 4 ++-- lib/eal/windows/eal.c | 2 +- lib/eal/windows/eal_interrupts.c | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/eal/common/eal_common_thread.c b/lib/eal/common/eal_common_thread.c index 079a385..e3aad2c 100644 --- a/lib/eal/common/eal_common_thread.c +++ b/lib/eal/common/eal_common_thread.c @@ -176,7 +176,7 @@ unsigned rte_socket_id(void) ret = eal_thread_dump_current_affinity(cpuset, sizeof(cpuset)); RTE_LOG(DEBUG, EAL, "lcore %u is ready (tid=%zx;cpuset=[%s%s])\n", - lcore_id, (uintptr_t)pthread_self(), cpuset, + lcore_id, rte_thread_self().opaque_id, cpuset, ret == 0 ? "" : "..."); rte_eal_trace_thread_lcore_ready(lcore_id, cpuset); @@ -330,7 +330,7 @@ static uint32_t control_thread_start(void *arg) /* Check if the control thread encountered an error */ if (ctrl_thread_status == CTRL_THREAD_ERROR) { /* ctrl thread is exiting */ - pthread_join(*thread, NULL); + rte_thread_join((rte_thread_t){(uintptr_t)*thread}, NULL); } ret = params->ret; diff --git a/lib/eal/windows/eal.c b/lib/eal/windows/eal.c index e7d405b..89da0c0 100644 --- a/lib/eal/windows/eal.c +++ b/lib/eal/windows/eal.c @@ -416,7 +416,7 @@ enum rte_proc_type_t ret = eal_thread_dump_current_affinity(cpuset, sizeof(cpuset)); RTE_LOG(DEBUG, EAL, "Main lcore %u is ready (tid=%zx;cpuset=[%s%s])\n", - config->main_lcore, (uintptr_t)pthread_self(), cpuset, + config->main_lcore, rte_thread_self().opaque_id, cpuset, ret == 0 ? "" : "..."); RTE_LCORE_FOREACH_WORKER(i) { diff --git a/lib/eal/windows/eal_interrupts.c b/lib/eal/windows/eal_interrupts.c index bb0585c..49c4b96 100644 --- a/lib/eal/windows/eal_interrupts.c +++ b/lib/eal/windows/eal_interrupts.c @@ -9,7 +9,7 @@ #define IOCP_KEY_SHUTDOWN UINT32_MAX -static pthread_t intr_thread; +static rte_thread_t intr_thread; static HANDLE intr_iocp; static HANDLE intr_thread_handle; @@ -33,7 +33,7 @@ return 0; } -static void * +static uint32_t eal_intr_thread_main(LPVOID arg __rte_unused) { bool finished = false; @@ -78,12 +78,12 @@ intr_thread_handle = NULL; cleanup: - intr_thread = 0; + intr_thread.opaque_id = 0; CloseHandle(intr_iocp); intr_iocp = NULL; - return NULL; + return 0; } int @@ -98,7 +98,7 @@ return -1; } - ret = rte_ctrl_thread_create(&intr_thread, "eal-intr-thread", NULL, + ret = rte_thread_create_control(&intr_thread, "eal-intr-thread", NULL, eal_intr_thread_main, NULL); if (ret != 0) { rte_errno = -ret; @@ -111,7 +111,7 @@ int rte_thread_is_intr(void) { - return pthread_equal(intr_thread, pthread_self()); + return rte_thread_equal(intr_thread, rte_thread_self()); } int From patchwork Fri Mar 17 22:34:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 125246 X-Patchwork-Delegate: david.marchand@redhat.com 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 9D23541EC5; Fri, 17 Mar 2023 23:35:28 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EE7564302B; Fri, 17 Mar 2023 23:34:57 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 251A740DF6 for ; Fri, 17 Mar 2023 23:34:50 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id E0E1620C343B; Fri, 17 Mar 2023 15:34:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E0E1620C343B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1679092488; bh=tULtgHrSsyssrVH73k/X8BQphCCt6XTjrrTXDkuLpBA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OO5ivi5lkiwRvMjNFvBBwIr0E8+sjtx4d0QcvtOgM4LbZNJ+7xUawDySS5kAl7c3D yx2RJRg3xUiO97dponGTLjsxJnC4KCrDe5ie5QnVVYxdYoRNZw3jC3VN7dK36lchjF aQLKqld1WbF4VBH1GgEAw9XgAG3CM2SVcq5Sw+Vc= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH 6/6] windows: remove most pthread lifetime shim functions Date: Fri, 17 Mar 2023 15:34:20 -0700 Message-Id: <1679092460-9930-7-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679092460-9930-1-git-send-email-roretzla@linux.microsoft.com> References: <1679092460-9930-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 Remove most of the pthread_xxx lifetime shim functions, only pthread_create remains while we wait for rte_ctrl_thread_create removal. Signed-off-by: Tyler Retzlaff --- lib/eal/windows/include/pthread.h | 99 --------------------------------------- 1 file changed, 99 deletions(-) diff --git a/lib/eal/windows/include/pthread.h b/lib/eal/windows/include/pthread.h index f7cf0e9..051b931 100644 --- a/lib/eal/windows/include/pthread.h +++ b/lib/eal/windows/include/pthread.h @@ -42,92 +42,6 @@ !DeleteSynchronizationBarrier(barrier) #define pthread_cancel(thread) !TerminateThread((HANDLE) thread, 0) -/* pthread function overrides */ -#define pthread_self() \ - ((pthread_t)GetCurrentThreadId()) - - -static inline int -pthread_equal(pthread_t t1, pthread_t t2) -{ - return t1 == t2; -} - -static inline int -pthread_setaffinity_np(pthread_t threadid, size_t cpuset_size, - rte_cpuset_t *cpuset) -{ - DWORD_PTR ret = 0; - HANDLE thread_handle; - - if (cpuset == NULL || cpuset_size == 0) - return -1; - - thread_handle = OpenThread(THREAD_ALL_ACCESS, FALSE, threadid); - if (thread_handle == NULL) { - RTE_LOG_WIN32_ERR("OpenThread()"); - return -1; - } - - ret = SetThreadAffinityMask(thread_handle, *cpuset->_bits); - if (ret == 0) { - RTE_LOG_WIN32_ERR("SetThreadAffinityMask()"); - goto close_handle; - } - -close_handle: - if (CloseHandle(thread_handle) == 0) { - RTE_LOG_WIN32_ERR("CloseHandle()"); - return -1; - } - return (ret == 0) ? -1 : 0; -} - -static inline int -pthread_getaffinity_np(pthread_t threadid, size_t cpuset_size, - rte_cpuset_t *cpuset) -{ - /* Workaround for the lack of a GetThreadAffinityMask() - *API in Windows - */ - DWORD_PTR prev_affinity_mask; - HANDLE thread_handle; - DWORD_PTR ret = 0; - - if (cpuset == NULL || cpuset_size == 0) - return -1; - - thread_handle = OpenThread(THREAD_ALL_ACCESS, FALSE, threadid); - if (thread_handle == NULL) { - RTE_LOG_WIN32_ERR("OpenThread()"); - return -1; - } - - /* obtain previous mask by setting dummy mask */ - prev_affinity_mask = SetThreadAffinityMask(thread_handle, 0x1); - if (prev_affinity_mask == 0) { - RTE_LOG_WIN32_ERR("SetThreadAffinityMask()"); - goto close_handle; - } - - /* set it back! */ - ret = SetThreadAffinityMask(thread_handle, prev_affinity_mask); - if (ret == 0) { - RTE_LOG_WIN32_ERR("SetThreadAffinityMask()"); - goto close_handle; - } - - memset(cpuset, 0, cpuset_size); - *cpuset->_bits = prev_affinity_mask; - -close_handle: - if (CloseHandle(thread_handle) == 0) { - RTE_LOG_WIN32_ERR("SetThreadAffinityMask()"); - return -1; - } - return (ret == 0) ? -1 : 0; -} - static inline int pthread_create(void *threadid, const void *threadattr, void *threadfunc, void *args) @@ -145,19 +59,6 @@ } static inline int -pthread_detach(__rte_unused pthread_t thread) -{ - return 0; -} - -static inline int -pthread_join(__rte_unused pthread_t thread, - __rte_unused void **value_ptr) -{ - return 0; -} - -static inline int pthread_mutex_init(pthread_mutex_t *mutex, __rte_unused pthread_mutexattr_t *attr) {