From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 585F942D46 for ; Sun, 25 Jun 2023 08:44:06 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5445440ED8; Sun, 25 Jun 2023 08:44:06 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2085.outbound.protection.outlook.com [40.107.243.85]) by mails.dpdk.org (Postfix) with ESMTP id 5A03B42D2F for ; Sun, 25 Jun 2023 08:44:04 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ku/hwB+ud+Fc7Pmj/MneTsPE5NeITOPKHp8O3Wp7QkUf4VciMsnZRrtVSoA1GWwOfOIFyHfBaCmCL6AWay7js0a7/MWq+Risvbh2A7IIOl2mRiPJIaz6nZjjnQq8NEZn83R6S5DBmQZD7//Iv7AbZT7NEgAdmTIH+uPyTlzgpnSivO2TJVNfciEjECov53Jr4ZJX8y8JvAcEuonx73lhVO25cgdt/4KRimKD0BtjzxQ2P4XyJ9hbfzmQIjZGenW8dp3qMHmAIL+Idue8mkPVerX8peJySv7d6pncabP/4ledX0/KG5D9IQASlEBx2d6SZTdKez80WNZ74HtBqBKbkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rYEX7fF5sN3tzkezRTF2ML5flIi0Oe+nJT1M27O67Gg=; b=OxJiNFTpUURdGkAIS/GX3LfE+nnqEtQlCO9iaS9RsUkAxQctSWmceszxUdGmVP82F7Ty+WIe55N8UAxf6Ilnd8CmaB+FfcZSoqhWNCnoD372w+cifZ/n+XGPXPgqlEcZfr07rGQeoWpbruppwA5v0kEQCpVBiWgIIN9gWEMNk7OoeEqHtKoDluCkCgzc53HL8n65FnNVg6HJDN2X68mDi6O71AqgfTDLtlGse39tWP3LU7kq9mRynFT/FBZK6BdZf12sc69BqXMiz11XtyjVVXPBcTnBt25NjcE+AJ1zk8qCdpBYoHZHlf1TSxksFBy8zEdIHeaQ8dmHZQIXG3Oemw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=marvell.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rYEX7fF5sN3tzkezRTF2ML5flIi0Oe+nJT1M27O67Gg=; b=X1bIUOMpTIY15aNnp5wT489nlAY1JjMVIvCg46deCPdYNEjTZYLujdIZTTXAubAVe6PCV8c5C5wNdXD5TMFzeqqflEEzffm9z4PAGzgP5Rda+9nSRwnH04V/ayKa3+OeRqUfjaFKlwOx3+tJSrED7sm0v2FQeG3hG08tM4J3WRfkIeY+2XOl7qmPRGvUoAFiKbDwWBtpYsE9LnIV6H+AtLq/r0+XGLmAN1W1hFhfwokTgsi8piWtSuNBa9m8UQxeVU3DgC/01Uiw+aiezMMNK+wS1d3E9jDzJbJ6ERoeuQYIix5Fwqs06q3eqsjn3z6gKV0sCH9Wt/8ZzsdYrKWFHA== Received: from BN9PR03CA0301.namprd03.prod.outlook.com (2603:10b6:408:112::6) by LV8PR12MB9184.namprd12.prod.outlook.com (2603:10b6:408:18f::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Sun, 25 Jun 2023 06:44:02 +0000 Received: from BN8NAM11FT046.eop-nam11.prod.protection.outlook.com (2603:10b6:408:112:cafe::4f) by BN9PR03CA0301.outlook.office365.com (2603:10b6:408:112::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.33 via Frontend Transport; Sun, 25 Jun 2023 06:44:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BN8NAM11FT046.mail.protection.outlook.com (10.13.177.127) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6500.47 via Frontend Transport; Sun, 25 Jun 2023 06:44:02 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Sat, 24 Jun 2023 23:43:52 -0700 Received: from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Sat, 24 Jun 2023 23:43:51 -0700 From: Xueming Li To: Ashwin Sekhar T K CC: dpdk stable Subject: patch 'mempool/cnxk: avoid hang when counting batch allocs' has been queued to stable release 22.11.3 Date: Sun, 25 Jun 2023 14:35:11 +0800 Message-ID: <20230625063544.11183-94-xuemingl@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230625063544.11183-1-xuemingl@nvidia.com> References: <20230625063544.11183-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT046:EE_|LV8PR12MB9184:EE_ X-MS-Office365-Filtering-Correlation-Id: eb94580d-5b0a-426c-2466-08db75479009 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xYLWksvts7pyWvpMPWKCWquW3vLYDnoMs6UlzfQfB53od4txBtRA1LXPadbbgNlOodochsKzyYPmeP+PPyEne8Bbyt6YdmC4+PLJhl0hnpnGQMMHCwtPA86gSE+/dQR+yelE5rnrQibKSNHEPxcdloJSwi8l1uL4SRlHGsCmGpeAwByuuqbAGOextZFv85SnsDUYm7xp3gkwoc0F1dTwG0DkjKU+zSHpI/2OEQgyHt3CF2J6EZLxT5va6+l6IbLw/Ld3aKZMPMkKgGXN82i8OplxTNoR5IsKb3MmkwwHSLu8g3qlQO9Um+zI/TMttzv6Igu6z479zvZCpodaHw16MAg9bsE6MUOax70z0Scv4jdiTQIW98BM6NAWKT5yzmlmowQJYPyd/lo6+4+rcpEtKzyiDm49V9ZQnx85VKsiBSH3bMl84nONMCgX8cC9OPeYANIgCUgsNitLTHyBtMTHNpDRqaB3ModdTKfSJrjEnX4yshjdi+LqaHREWdj41uHFykFZsKkCDYiyB54vUilnuOLtILg44s2kzczSTu8g9N1iEWihOv9x7BY1WCCH+x+YMlSmEWEcQyGKfEIZkwHffpRVUruVh/DNYyzHC/GwZeICihmjXTnHuJt9njfPXhAm6q7aChdBCxmiJGb4uaddLUxO2YTEus2oUhmLAXmRmrlIePsELM035QrguTDP53PzdZf8uCHz8VfevYR3iVib6MVc9B8DZoeLiS/LDdDfn/Oa3R1w9y5u9PF+jk2cRFAOmePBEH6XRC9wlKMW5v6Cfg== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230028)(4636009)(39860400002)(376002)(346002)(396003)(136003)(451199021)(46966006)(36840700001)(40470700004)(40460700003)(2906002)(7696005)(82310400005)(82740400003)(6666004)(356005)(7636003)(2616005)(83380400001)(47076005)(336012)(426003)(1076003)(26005)(186003)(6286002)(16526019)(53546011)(966005)(36860700001)(55016003)(40480700001)(41300700001)(86362001)(478600001)(316002)(36756003)(70586007)(70206006)(4326008)(6916009)(5660300002)(8676002)(8936002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2023 06:44:02.0672 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eb94580d-5b0a-426c-2466-08db75479009 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT046.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9184 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 22.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/27/23. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=9d1dbc6a017eb7cb18f83c0e6b1f24cbc8a1afbf Thanks. Xueming Li --- >From 9d1dbc6a017eb7cb18f83c0e6b1f24cbc8a1afbf Mon Sep 17 00:00:00 2001 From: Ashwin Sekhar T K Date: Tue, 11 Apr 2023 12:51:46 +0530 Subject: [PATCH] mempool/cnxk: avoid hang when counting batch allocs Cc: Xueming Li [ upstream commit 6df1bc6b3b7e1b5d81dc26720a0f0593ed94995a ] Avoid waiting indefinitely when counting batch alloc pointers by adding a wait timeout. Fixes: 8f2cd7946083 ("mempool/cnxk: add cn10k get count") Signed-off-by: Ashwin Sekhar T K --- drivers/common/cnxk/roc_npa.h | 15 +++++++++------ drivers/mempool/cnxk/cn10k_mempool_ops.c | 3 ++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/drivers/common/cnxk/roc_npa.h b/drivers/common/cnxk/roc_npa.h index fed1942404..46b668a310 100644 --- a/drivers/common/cnxk/roc_npa.h +++ b/drivers/common/cnxk/roc_npa.h @@ -253,19 +253,23 @@ roc_npa_aura_batch_alloc_issue(uint64_t aura_handle, uint64_t *buf, } static inline void -roc_npa_batch_alloc_wait(uint64_t *cache_line) +roc_npa_batch_alloc_wait(uint64_t *cache_line, unsigned int wait_us) { + const uint64_t ticks = (uint64_t)wait_us * plt_tsc_hz() / (uint64_t)1E6; + const uint64_t start = plt_tsc_cycles(); + /* Batch alloc status code is updated in bits [5:6] of the first word * of the 128 byte cache line. */ while (((__atomic_load_n(cache_line, __ATOMIC_RELAXED) >> 5) & 0x3) == ALLOC_CCODE_INVAL) - ; + if (wait_us && (plt_tsc_cycles() - start) >= ticks) + break; } static inline unsigned int roc_npa_aura_batch_alloc_count(uint64_t *aligned_buf, unsigned int num, - unsigned int do_wait) + unsigned int wait_us) { unsigned int count, i; @@ -279,8 +283,7 @@ roc_npa_aura_batch_alloc_count(uint64_t *aligned_buf, unsigned int num, status = (struct npa_batch_alloc_status_s *)&aligned_buf[i]; - if (do_wait) - roc_npa_batch_alloc_wait(&aligned_buf[i]); + roc_npa_batch_alloc_wait(&aligned_buf[i], wait_us); count += status->count; } @@ -305,7 +308,7 @@ roc_npa_aura_batch_alloc_extract(uint64_t *buf, uint64_t *aligned_buf, status = (struct npa_batch_alloc_status_s *)&aligned_buf[i]; - roc_npa_batch_alloc_wait(&aligned_buf[i]); + roc_npa_batch_alloc_wait(&aligned_buf[i], 0); line_count = status->count; diff --git a/drivers/mempool/cnxk/cn10k_mempool_ops.c b/drivers/mempool/cnxk/cn10k_mempool_ops.c index ba826f0f01..ff0015d8de 100644 --- a/drivers/mempool/cnxk/cn10k_mempool_ops.c +++ b/drivers/mempool/cnxk/cn10k_mempool_ops.c @@ -9,6 +9,7 @@ #define BATCH_ALLOC_SZ ROC_CN10K_NPA_BATCH_ALLOC_MAX_PTRS #define BATCH_OP_DATA_TABLE_MZ_NAME "batch_op_data_table_mz" +#define BATCH_ALLOC_WAIT_US 5 enum batch_op_status { BATCH_ALLOC_OP_NOT_ISSUED = 0, @@ -178,7 +179,7 @@ cn10k_mempool_get_count(const struct rte_mempool *mp) if (mem->status == BATCH_ALLOC_OP_ISSUED) count += roc_npa_aura_batch_alloc_count( - mem->objs, BATCH_ALLOC_SZ, 1); + mem->objs, BATCH_ALLOC_SZ, BATCH_ALLOC_WAIT_US); if (mem->status == BATCH_ALLOC_OP_DONE) count += mem->sz; -- 2.25.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-06-25 14:32:01.025262900 +0800 +++ 0093-mempool-cnxk-avoid-hang-when-counting-batch-allocs.patch 2023-06-25 14:31:58.535773900 +0800 @@ -1 +1 @@ -From 6df1bc6b3b7e1b5d81dc26720a0f0593ed94995a Mon Sep 17 00:00:00 2001 +From 9d1dbc6a017eb7cb18f83c0e6b1f24cbc8a1afbf Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit 6df1bc6b3b7e1b5d81dc26720a0f0593ed94995a ] @@ -10 +12,0 @@ -Cc: stable@dpdk.org @@ -19 +21 @@ -index dd588b0322..1ef3ecc08a 100644 +index fed1942404..46b668a310 100644 @@ -22 +24 @@ -@@ -241,19 +241,23 @@ roc_npa_aura_batch_alloc_issue(uint64_t aura_handle, uint64_t *buf, +@@ -253,19 +253,23 @@ roc_npa_aura_batch_alloc_issue(uint64_t aura_handle, uint64_t *buf, @@ -49 +51 @@ -@@ -267,8 +271,7 @@ roc_npa_aura_batch_alloc_count(uint64_t *aligned_buf, unsigned int num, +@@ -279,8 +283,7 @@ roc_npa_aura_batch_alloc_count(uint64_t *aligned_buf, unsigned int num, @@ -59 +61 @@ -@@ -293,7 +296,7 @@ roc_npa_aura_batch_alloc_extract(uint64_t *buf, uint64_t *aligned_buf, +@@ -305,7 +308,7 @@ roc_npa_aura_batch_alloc_extract(uint64_t *buf, uint64_t *aligned_buf,