From patchwork Tue Dec 12 04:25:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artemy Kovalyov X-Patchwork-Id: 135049 X-Patchwork-Delegate: thomas@monjalon.net 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 C6329436CB; Tue, 12 Dec 2023 05:25:35 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AD36C42DD5; Tue, 12 Dec 2023 05:25:35 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) by mails.dpdk.org (Postfix) with ESMTP id 2AB7142DC7 for ; Tue, 12 Dec 2023 05:25:34 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gg0Yl/bokoipJCi2YCxqXqTU5Je6nx9YDmw9C5gSiTK2yrK3KEKDZHL9ALJotT3prtmbZGf2ZoXCznyatL5suk5pbCd9NCfKH84dRKas5R2ZwG+QmmA00qFKSHdICtqi1dlogQJjnyjdmeNXaCmKK0jqv4pnKacDhxN4ajEIO4mtD5WtSPCn4RwNN1yo9KLHwQ9BKKahSyGxF7iCOHM9Gqfh4+2T05szBhnsgNVFTYP9eTAqg9Wy5JeOxB3/X3V9Y3e8e4mkpN5a4QrcEZX5VabbBnjyHX9eJgF31mfja8EoZAOn3BdJK8lVKZ9O/dFJtgr29CrskkOod83VFWUjuQ== 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=rMHyOMYkFDq/NevqLigOn8l4MYpPrChK5G4e8kSel0E=; b=fZBHeKnn7zSWbI35jCtYYh/B1T0mLWShhr4zaU379KLvVSozZjdm0pMCQabjr484+9ZgyMjU80LmNQSKxC/Btp771yKbnbkbW/rtnwhIy3QsVV4hK3eO6NfOFmeV6fu8EYJX+pwFheIPhkLt9GQ9lnwKXAnQCwxL+peZZXMaBu7BPLIB0aXeqY5Ktrxtm2qyUTDJEf6/1XBXojsAjuZx30sU3H4hRe1aLTgb5iqNbBOH39FIrZDGgEZwPI3aO036K5ruCROYqrQFMO8VMOlRSF7iZNPQwCyVDZdd/A3+t5NBwMxWDCD7d8+BQqXUeJm0QB9vOapbfVCuA9nCQ8Kkew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=dpdk.org 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 (0) 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=rMHyOMYkFDq/NevqLigOn8l4MYpPrChK5G4e8kSel0E=; b=fLMnG/mKFj7xFTcuX4O7+EzcaC39D9SlfK8nTHoibCxDamDrO/s/inJfEICetJQD+g+P9AinkQIqcZizmWMMKb5cDHctXjV2iWwbL3jKuXhN/9T3OHzcdp+r3tMyG7s+/RXpQfVJgjxU8peIwCIl5Y408D+CicJa7H98KHB3E5AUn5on/niqX1PdUMqvWPNMd7dh8MTIfIRzSGV7061VKahrJNNct4nCZ5/f6e53RyBRy6cYe51P6ohJoFfCYL6DU+q4t1MXngDkP+f0TioS2wGL31U07tRsjr6Bf5GhPN/wLk3uNVdj3ixrraZmzwIv+1E7Qio+VMGt26Spn8NAkA== Received: from PH0PR07CA0115.namprd07.prod.outlook.com (2603:10b6:510:4::30) by SA1PR12MB7037.namprd12.prod.outlook.com (2603:10b6:806:24c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Tue, 12 Dec 2023 04:25:32 +0000 Received: from SA2PEPF000015CA.namprd03.prod.outlook.com (2603:10b6:510:4:cafe::39) by PH0PR07CA0115.outlook.office365.com (2603:10b6:510:4::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33 via Frontend Transport; Tue, 12 Dec 2023 04:25:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SA2PEPF000015CA.mail.protection.outlook.com (10.167.241.200) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.18 via Frontend Transport; Tue, 12 Dec 2023 04:25:31 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:21 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:21 -0800 Received: from nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41 via Frontend Transport; Mon, 11 Dec 2023 20:25:20 -0800 From: Artemy Kovalyov To: CC: Thomas Monjalon , Anatoly Burakov Subject: [PATCH 1/5] app/test-pm: add multiprocess test Date: Tue, 12 Dec 2023 06:25:12 +0200 Message-ID: <20231212042517.164353-2-artemyko@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231212042517.164353-1-artemyko@nvidia.com> References: <20231212042517.164353-1-artemyko@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF000015CA:EE_|SA1PR12MB7037:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d70a68c-ffe6-4769-e3d7-08dbfaca60cf X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G320wt18uOl/f1p8FBZNX2GdZQWY29c4PPoiqvQUiHfCIRq+QYTAvob43sDorI+PgAblT8dlPm1E3chGaj+0SKgjOECY9umRfLAfkDIvgLhDVVoyuH4rVp+rfRgfRG4LnMTLh5Bq9AolCs/tFUJk5OJ5TPlbxuV82kaLxKdGD2PnsgenKvXTo0HDbjFbMzaXLSTMWTSkA4Go/anResI7ZsEiFyyuHw/UuM7g3XB08HQcsu19qD1Vn2SKqD7LcNEB7xuQyMEBo+InjC2ZzaTruvgL1bYm6fqEAVwHys4+VFR88ZrpzE9KL1GV2aJEFo/CoRDfNgM4FbllliCuJA0NE+Rr/nnAwSGEi09T9ZfR5V3roavLJX8bz3JJhhw+kJEutTLo5I0u70FduzJEWnPsGJ0RVvDi6ZgGGT5tacCEddKhPYvbo4CbkctQ0sJfh+1GkYOgrj/Z8vOlQSHXoxprTMDeb7BMrEwodpxWlWJZCnHzhxUe3f8/cg2XUVwgGnFfJIsl6bZ6AUzXSjgEUegp+VRbCE25hSxQzbwsq6en7r2fgisswYisjKdWC7MrLA9ovCJMW+mzj856F7Y4XKNTQOBaKgiwVRsy/QZ7ob3w9g08iT5EJq/wOtlJc2amJS3wMNl8EhVa5Do2eaucd//VjAOGFxS28DbfKVSCEcMhQPIhH8F9YVKilmJ9YpKrsQyJrKkYX8R932Wiwg5/QS+uEVgCkl6R8JNgrRrBkq3nxDP99XfFPHPPAgE4AsxQnRiw X-Forefront-Antispam-Report: CIP:216.228.118.232; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(376002)(39860400002)(346002)(396003)(136003)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(82310400011)(36840700001)(40470700004)(46966006)(40460700003)(2906002)(41300700001)(36860700001)(86362001)(36756003)(82740400003)(2616005)(356005)(83380400001)(336012)(1076003)(426003)(6286002)(26005)(478600001)(7696005)(47076005)(6666004)(4326008)(5660300002)(316002)(70586007)(8936002)(6916009)(70206006)(54906003)(7636003)(8676002)(55016003)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2023 04:25:31.6381 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8d70a68c-ffe6-4769-e3d7-08dbfaca60cf X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.232]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF000015CA.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7037 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 This commit adds a test scenario that initiates multiple processes concurrently. These processes attach to the same shared heap, with an automatic detection mechanism to identify the primary process. Signed-off-by: Artemy Kovalyov --- app/meson.build | 1 + app/test-mp/main.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ app/test-mp/meson.build | 8 ++++++++ app/test-mp/run.sh | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 97 insertions(+) create mode 100644 app/test-mp/main.c create mode 100644 app/test-mp/meson.build create mode 100755 app/test-mp/run.sh diff --git a/app/meson.build b/app/meson.build index 8aaed59..1b80091 100644 --- a/app/meson.build +++ b/app/meson.build @@ -30,6 +30,7 @@ apps = [ 'test-flow-perf', 'test-gpudev', 'test-mldev', + 'test-mp', 'test-pipeline', 'test-pmd', 'test-regex', diff --git a/app/test-mp/main.c b/app/test-mp/main.c new file mode 100644 index 0000000..0a0fbbf --- /dev/null +++ b/app/test-mp/main.c @@ -0,0 +1,49 @@ +#include +#include + +#include +#include +#include + +rte_atomic32_t g_count; + +static int +done(const struct rte_mp_msg *msg __rte_unused, const void *arg __rte_unused) +{ + rte_atomic32_dec(&g_count); + return 0; +} + +int +main(int argc, char **argv) +{ + void *p; + int ret; + + ret = rte_eal_init(argc, argv); + assert(ret >= 0); + + rte_atomic32_set(&g_count, atoi(argv[++ret])); + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) { + ret = rte_mp_action_register("done", done); + assert(ret == 0); + } + + p = rte_malloc(NULL, 0x1000000, 0x1000); + assert(p); + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) { + uint64_t timeout = rte_rdtsc() + 5 * rte_get_tsc_hz(); + + while (rte_atomic32_read(&g_count) > 0) + assert(rte_rdtsc() < timeout); + } else { + struct rte_mp_msg msg = { .name = "done" }; + + rte_mp_sendmsg(&msg); + } + + rte_eal_cleanup(); + return 0; +} diff --git a/app/test-mp/meson.build b/app/test-mp/meson.build new file mode 100644 index 0000000..feb9e20 --- /dev/null +++ b/app/test-mp/meson.build @@ -0,0 +1,8 @@ +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + +sources = files('main.c') +deps = ['eal'] # , 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline'] diff --git a/app/test-mp/run.sh b/app/test-mp/run.sh new file mode 100755 index 0000000..8de07e2 --- /dev/null +++ b/app/test-mp/run.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +logdir=/tmp/dpdk_test_mp +repeat=1 +lastcore=$(($(nproc) - 1)) +log=1 + +while getopts p:r:lL:d op; do case $op in + p) lastcore=$OPTARG ;; + r) repeat=$OPTARG ;; + L) logdir=$OPTARG ;; + l) log=0 ;; + d) debug=1 ;; +esac done +shift $((OPTIND-1)) + +test=$1 +logpath=$logdir/$(date +%y%m%d-%H%M%S) + +rm -f core.* +pkill dpdk-test-mp + +for j in $(seq $repeat) ; do + [ $log ] && mkdir -p $logpath/$j + for i in $(seq 0 $lastcore) ; do + args="-l $i --file-prefix=dpdk1 --proc-type=auto" + if [ $debug ] ; then + args="$args --log-level=lib.eal:8" + fi + if [ $log ] ; then + $test $args $lastcore >$logpath/$j/$i.log 2>&1 & + else + $test $args $lastcore & + fi + done + wait || break + [ $(ls core.* 2>/dev/null | wc -l) -gt 0 ] && break + echo iteration $j passed +done From patchwork Tue Dec 12 04:25:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artemy Kovalyov X-Patchwork-Id: 135050 X-Patchwork-Delegate: thomas@monjalon.net 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 6A6FB436CB; Tue, 12 Dec 2023 05:25:47 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 047E642DDF; Tue, 12 Dec 2023 05:25:43 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2041.outbound.protection.outlook.com [40.107.236.41]) by mails.dpdk.org (Postfix) with ESMTP id 9623442DD4; Tue, 12 Dec 2023 05:25:41 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A53+UdBrkeaFC2Y1Fe/rHD/SGYDANQLAjMmoyyxqBapBqfoSIxf6Rj9iZcyq471eGXWMCLjtxD9naAMzAIiv5HS3gGa3TeJWN5D535I0zQvXOgRgFppoc7jTKhl/jeQW2fW1DKCiBBaT9VfAwRbk0E3k1/jnk/bI8bsiUItPEzbe+WuTcNM+Xntj2BUhxJOZSR/SSMbkJpHTGsHKdTDnh4rXEjGoOCWesvcTvbdiZ8V+N8snMkv00gqo3VDfTfroSjLj92pRFH1UX9gDwY2EF4A1lBsW0UjUoPL3sqJxaJdVkYhHGAy27w+pLkbCQRR+aMnhfynSwaIR34eMzztlRg== 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=uXP/xKI+n5XBgy8wU7yetcK2IcXDzDrBbsKvPujH7yQ=; b=MhrS/JGwifG4tXG7YaK8Mi6trk9+lNorUVjDPRkviUClcsKkWU1nnQWNeqoclS81bOVgqmQ383zkEX5BLEJJmq4Nb1yzkWe08rMVJnOEWLwBusbUR4w7NR3fMhAplarppOqG91d3frbDyFbwO5qn2N3PvmfjW3U8ZYWxJBRZryJNVILcqcMujWJP2WrB7l/sT7foVPXPR7KO96tn3+RvhxyHckbOWGhkoMRU0hcqBpQNFxv7XscyCRmKMsQEzNFjmZFzDUnwDmMhi+XevGpKjJDstTOr05QtpgEYKX7s/9SNaVLDNgHRWqfrj8xbTVHGIVcNYaapumtfT8D0sxo4Kg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=dpdk.org 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 (0) 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=uXP/xKI+n5XBgy8wU7yetcK2IcXDzDrBbsKvPujH7yQ=; b=OpWC7iqLobZnPpBtcVEDLinE3IdwZ4ig04oVVQ1FX3ezlO3dlTwcOI+27VkN3DzPH0kLZdHknjP1oXcBujpfYzNvmmFRO1mDPve4akN39pej26H/vdWEcn/cd6q1HAsV5JJNdShfIWSCNxl13VPE5C6RhmiWhgxW4CTJ5/Jwauu6av1VL/pKnll8+ADdLVRcWKbXpPtDJDpXuerPmpvP3SrQDEfvTSb+uG6vPZvchvDlHvwEOS2WHFv4f/k8Jyy0LaJoUx88VsZPfz48krkpqNVgy0iB6/jfW/aVIKAG4kS+W5WzgJvjtMxCwJZsswgjHv51Tda5k/MjkehvUMgQng== Received: from SN7PR18CA0018.namprd18.prod.outlook.com (2603:10b6:806:f3::10) by PH7PR12MB6717.namprd12.prod.outlook.com (2603:10b6:510:1b0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Tue, 12 Dec 2023 04:25:37 +0000 Received: from SA2PEPF000015C6.namprd03.prod.outlook.com (2603:10b6:806:f3:cafe::34) by SN7PR18CA0018.outlook.office365.com (2603:10b6:806:f3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33 via Frontend Transport; Tue, 12 Dec 2023 04:25:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SA2PEPF000015C6.mail.protection.outlook.com (10.167.241.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.18 via Frontend Transport; Tue, 12 Dec 2023 04:25:37 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:26 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:25 -0800 Received: from nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41 via Frontend Transport; Mon, 11 Dec 2023 20:25:24 -0800 From: Artemy Kovalyov To: CC: Thomas Monjalon , , Qi Zhang , Anatoly Burakov Subject: [PATCH 2/5] eal: fix multiprocess hotplug race Date: Tue, 12 Dec 2023 06:25:13 +0200 Message-ID: <20231212042517.164353-3-artemyko@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231212042517.164353-1-artemyko@nvidia.com> References: <20231212042517.164353-1-artemyko@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF000015C6:EE_|PH7PR12MB6717:EE_ X-MS-Office365-Filtering-Correlation-Id: 0dc0ecda-0514-45a3-1245-08dbfaca640a X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HPnbZq7oR2WE336/CgbYiLLMJYKdxnkyToMBV98tSoUjLvapCM9Ku2NORHSR37BEltMDg33NGQ+/u+AoTZaKopiKFPARav+HJUZJ8Jk5CCPFR3aPVbBfH5oiiwEzgV8cNmVI1+QEadQ0QMWnpJj+H9DYXJzo4Bwey4O3e9njZofO8OJtJMxapuddJmwRAiQ82UUn9iDnaxwpmDU8l0Km/61JwqtJZkQUr0QoKw+BhOz65NsTPGYsj07dye1NFWW0FboHBX/eURFI8+OuJ8AS/be5B93GWrV/QjCx/eIVf0tDhlcJGu68QF5U/WyEZtbKoxhkDXwRI/KcsXeg8AIjlUjKj3VVhMfxGvj1ysTqcv2B/KI6qAazq836MZMQsGEaH+X6n3sTvdxAR+kO3RWjIflYt/X066lqIABVUHdhKspUl55L7HAfz0h9aMPp8N73hFRyfVK17zdg6d0EPeZ9HiCVxw8Ga3nEN24pWp8/mBX/l+eZhRwJvgG7vF9BBt9mT/ppP26Y/D9tNyx/EoR74w10LKQLo+elbFhcplknPf5H4ybi1de28r7YaldXqfMAZb1wNfO4OVXDvL7lYwcm5hSIL8HzLgf3tVCaoMoHlREGBncSWC3xae7eXayweId8dk+j8eW35/BDV5jDthNavUxvgYsvs1ET/j4NJpEwJIAzRCEqgArkYYL7VuvuY40kMcwAkISaOTBO7DVtX5IlKdAuORD3t04eu/EiKbIHKAu8d45Y8aPkG+/f73IkVK7e X-Forefront-Antispam-Report: CIP:216.228.118.232; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(376002)(346002)(396003)(39860400002)(136003)(230922051799003)(64100799003)(186009)(82310400011)(1800799012)(451199024)(36840700001)(40470700004)(46966006)(2906002)(41300700001)(47076005)(36860700001)(86362001)(70586007)(70206006)(36756003)(54906003)(6916009)(7636003)(356005)(82740400003)(2616005)(478600001)(7696005)(6666004)(1076003)(6286002)(26005)(336012)(83380400001)(426003)(5660300002)(8676002)(316002)(8936002)(4326008)(55016003)(40460700003)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2023 04:25:37.0526 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0dc0ecda-0514-45a3-1245-08dbfaca640a X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.232]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF000015C6.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6717 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 There exists a time gap between the creation of the multiprocess channel and the registration of request action handlers. Within this window, a secondary process that receives an eal_dev_mp_request broadcast notification might respond with ENOTSUP. This, in turn, causes the rte_dev_probe() operation to fail in another secondary process. To avoid this, disregarding ENOTSUP responses to attach notifications. Fixes: 244d5130719c ("eal: enable hotplug on multi-process") Cc: stable@dpdk.org Signed-off-by: Artemy Kovalyov --- lib/eal/common/hotplug_mp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/eal/common/hotplug_mp.c b/lib/eal/common/hotplug_mp.c index 6027819..e6a3f6b 100644 --- a/lib/eal/common/hotplug_mp.c +++ b/lib/eal/common/hotplug_mp.c @@ -428,6 +428,9 @@ int eal_dev_hotplug_request_to_secondary(struct eal_dev_mp_req *req) if (req->t == EAL_DEV_REQ_TYPE_ATTACH && resp->result == -EEXIST) continue; + if (req->t == EAL_DEV_REQ_TYPE_ATTACH && + resp->result == -ENOTSUP) + continue; if (req->t == EAL_DEV_REQ_TYPE_DETACH && resp->result == -ENOENT) continue; From patchwork Tue Dec 12 04:25:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artemy Kovalyov X-Patchwork-Id: 135051 X-Patchwork-Delegate: thomas@monjalon.net 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 895A2436CB; Tue, 12 Dec 2023 05:25:56 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F121242DFB; Tue, 12 Dec 2023 05:25:44 +0100 (CET) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2086.outbound.protection.outlook.com [40.107.92.86]) by mails.dpdk.org (Postfix) with ESMTP id E193042DD8; Tue, 12 Dec 2023 05:25:42 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DLSEV5Wt3GaxktHs59CuYe9GuDw7OmxpCsvAaXKe6t36URtU8AdRn4BroftliZMAFiRHByGgQxbq47iPCVWm+9T8AokyTnu0jpCLqeGBPDDuWQA/bE0RSeOAEIigafaGOdXk31RayGSTlzdaaPxdvSrcyzlLR6xdoaRJJ76nawBibK2fck0wiQ2b6I1JW2HwmhaQ/Ssj0c4qpTdKBGpAIqw5NyOS81bf1PICpucAtcm+Hy+iawUOjXg8+qg4qVgjxLA2qxh1n9V87KTZxAr9ReFZo4dFtN4IwuUewWcsyAAtarnrlhUulYMygz8+425K06Ipwj6BxBUXJ/Z1RYt2vQ== 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=efO8i5/RvUD6prZ3xBDdEXD6A+w8LJbcPFsSfgbxYrk=; b=IEL2lckVDcXhebUbmW78vM8LS/PAg3b0QTZMQSrJFNOWXUt6yTM1k9830/mGSCN4rmBfKjm2DOUQp5i7BxqGHLT1pZoYfx49csZj9oAXoCu9uxiJepZGCo6EPzFPrINi+qm+tjtzCuHOK68ZTeuGqicSxZkLlt1zXMtJcDb2/1my/fesmSIHf7s8DIeO2xXOYDOw/U6ZeLYoesx3t+dufeMqXKfjOi2VZIL9Mp6fH4UYbi5XIA6Bmt0+tLvdgaTSx6K4zQsdy8c/mVN6BeD5DDggk6pXj+QUpBPXk3C6+HtXYSU6kD8MNkKGqOXz7PLYrR07izYbTaQP2ANnPaAYfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=dpdk.org 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 (0) 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=efO8i5/RvUD6prZ3xBDdEXD6A+w8LJbcPFsSfgbxYrk=; b=briUc0bpYcs8FkCmAhJcYPkXAblPkua+swcsYZLpuo4+Yugl+Z2313R//o1D9I9gaZXCw2Q6A84WXKPi+ambcHUki4/Vp1tdFK++3ULrqIujnvpiPq4IsKYgi7d4z5FL9YUoZkZewtVNQxMcPgLWtzPws/k2W52wPEuDSthOTd6eDUxpsalxoAQTXP992KmFqgchDEc9afe7/VZ5X6Tg+9K17tQcZ6fohIEK0wHA3EJD7pK5ihoRr1B8/8BIlDobl5TZ2xkICoKZsCIHnqtR2bkovK8pyhXT7YFp/e5nfGDT0jVB/fZn8EQbvGTcLil8ZSy1VGyEI7cq4H1SE+3ebw== Received: from MW4PR03CA0187.namprd03.prod.outlook.com (2603:10b6:303:b8::12) by SA0PR12MB4383.namprd12.prod.outlook.com (2603:10b6:806:94::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Tue, 12 Dec 2023 04:25:40 +0000 Received: from CO1PEPF000042AD.namprd03.prod.outlook.com (2603:10b6:303:b8:cafe::72) by MW4PR03CA0187.outlook.office365.com (2603:10b6:303:b8::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33 via Frontend Transport; Tue, 12 Dec 2023 04:25:39 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) 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.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by CO1PEPF000042AD.mail.protection.outlook.com (10.167.243.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.18 via Frontend Transport; Tue, 12 Dec 2023 04:25:39 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:29 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:28 -0800 Received: from nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41 via Frontend Transport; Mon, 11 Dec 2023 20:25:27 -0800 From: Artemy Kovalyov To: CC: Thomas Monjalon , , Anatoly Burakov , Maxime Coquelin , David Marchand Subject: [PATCH 3/5] ipc: fix mp channel closure to prevent message loss Date: Tue, 12 Dec 2023 06:25:14 +0200 Message-ID: <20231212042517.164353-4-artemyko@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231212042517.164353-1-artemyko@nvidia.com> References: <20231212042517.164353-1-artemyko@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000042AD:EE_|SA0PR12MB4383:EE_ X-MS-Office365-Filtering-Correlation-Id: 1e15532b-5541-40c0-37a0-08dbfaca6597 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M8jgXHlnoq2hARDxuB+gw+VzoJnP7fEUaGiVHmWLy71rS+PvIUrrA8bFLq90S6+VQBPymxh3/DybX81dBva7X9Dqej7LaPe6kV80zbFULIiNJgSEFUYlKRRvxstcLX40Y/Ps8pPt37dYxIvS8fE80jArR3/DMWhMoUG+BcDVwxbGaW6A/5SldboisUYJYGfGfJA+WeXoU+lZtplcObY4j8L1Mnb93RHf+maSnLGX7kI2aC4f1hqLQ38SD285usjntVF2qPXZDw0pTpBSbxOCzjDniXLCRWUnKk49FF707G9tUVzLmD9nt33LcBSBjCWP5jwm7wMNdkf9rEKh9IxwaOpylmFKhGe7fvL7pJ3K4M0k4XMJrb1wjObOymGxrDxOHJlOi3Jto5TtH/gJK9w0ntoREArQjFUv9G9JyQdBQ5ybXhnENruKLB9xNtCG64PyBUmFEJwIxHhFAejjIbTKZy5GQylFvauF36Z2qpKoXxjg+eaoZ049IZo8TBy3Aakk6LB9fXfBbtkRfz8FMrv7M7VfhYsAK/dx0rsj3T9G8Kee0z/AP1EJoLZbfw2RcFeDcQpXEzsNUyR6VXDfqPr/3hzM8meqWeoZKOb12sV+RLwdUkP3eTqRmK9Ze9tifcmFVpl09SZ0d5Eppguru2cmf5HO/CIZ7X/zMCzfcUFnk93iaKQsEysA+VE8jbBC3VBlOhXKLH1bB4dhccxkqrY1K7HOu8iePylFlJr3jbg8li0= X-Forefront-Antispam-Report: CIP:216.228.118.233; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge2.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(39860400002)(376002)(136003)(396003)(346002)(230922051799003)(1800799012)(451199024)(64100799003)(82310400011)(186009)(36840700001)(40470700004)(46966006)(40460700003)(36860700001)(1076003)(47076005)(6286002)(5660300002)(336012)(26005)(2616005)(36756003)(7636003)(426003)(40480700001)(70586007)(70206006)(6916009)(54906003)(2906002)(83380400001)(86362001)(82740400003)(478600001)(41300700001)(356005)(7696005)(8936002)(4326008)(8676002)(55016003)(15650500001)(316002)(6666004); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2023 04:25:39.7022 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1e15532b-5541-40c0-37a0-08dbfaca6597 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.233]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000042AD.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4383 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 This commit addresses an issue related to the cleanup of the multiprocess channel. Previously, when closing the channel, there was a risk of losing trailing messages. This issue was particularly noticeable when broadcast message from primary to secondary processes was sent while a secondary process was closing it's mp channel. In this fix, we delete mp socket file before stopping mp receive thread. Fixes: e7885281ded1 ("ipc: stop mp control thread on cleanup") Cc: stable@dpdk.org Signed-off-by: Artemy Kovalyov --- lib/eal/common/eal_common_proc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/eal/common/eal_common_proc.c b/lib/eal/common/eal_common_proc.c index 728815c..d34fdda 100644 --- a/lib/eal/common/eal_common_proc.c +++ b/lib/eal/common/eal_common_proc.c @@ -593,7 +593,7 @@ enum async_action { } static void -close_socket_fd(int fd) +remove_socket_fd(int fd) { char path[PATH_MAX]; @@ -672,9 +672,9 @@ enum async_action { if (fd < 0) return; + remove_socket_fd(fd); pthread_cancel((pthread_t)mp_handle_tid.opaque_id); rte_thread_join(mp_handle_tid, NULL); - close_socket_fd(fd); } /** From patchwork Tue Dec 12 04:25:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artemy Kovalyov X-Patchwork-Id: 135052 X-Patchwork-Delegate: thomas@monjalon.net 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 59D1F436CB; Tue, 12 Dec 2023 05:26:02 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2164442DFE; Tue, 12 Dec 2023 05:25:48 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) by mails.dpdk.org (Postfix) with ESMTP id 0F04C42DF1; Tue, 12 Dec 2023 05:25:47 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FkUFvuIxrYnZKxXLaQpvOc2kDO/5j1aUnielFZzOyFWd+AFeKAOHwuuKE2Wzzj4m+nKGmMx47E5knSIWmLQZh3IkfTbO4WSv33InHLRw8BOmCIPfzsvIiDne0yN2foqlw9otWfUUw/qsLCNb0lrtO9MgH1Ai2ISJ82kUXXasRtm/rf7mZRR6dVcsb8GjdiSJywnGMKF/EhP4l5qWXeVFcP92iQcJbjiWp4PskEg9SQHBTxqzEvi4TWBpeBrO1EO1h1k3nnmnS/2hg/63Ru8NEap5lKF81t0M20ohxhfF/spsLmlkFHD6aAk8PAesdf1oGbcMvhP4eIOlN7njP8yyPA== 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=BRe2Bi1f/4Zz0mqYB/6kBl84T8JJ/Ma2hR8DDRJGVow=; b=McAaobECjm1uFfz8/WLn+tMVOnMUulSXIN9IU+Kpz8wjuEiXVNKJKRe5z1kMvsQPqZ3pwS8dHVyvmEXcXiO//XWdW2rbPojR1LBtAGhA8ySR/mElBxJ98ODpXzNVUKcZq7tqocohn2q5IHMThcVoW0ncq5Lq1CircJIRz/xqAKj7ASSxh1jpi+JI38MLUX4G64Ju2vSS/lyAbTycDJiS49yATjUd22yF2jhDU6Qc62vGqjywAlz4zcWWL7YlhztY5I5Ky7abZEV+zhYQ+n7XI/x+k5j4Ly4Mtk7xC/ur0aBl+a2l6nF1Jf6UbDSprNt1Q+v8j5tQ2+fy5t0qrl73Dg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=dpdk.org 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 (0) 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=BRe2Bi1f/4Zz0mqYB/6kBl84T8JJ/Ma2hR8DDRJGVow=; b=h2D3Qt1v1J6CgLtYxx52VItwasOsv8Dgdx3+n1u8hKTubOXdpUkAn+4Ld8e22xKsXepASipTtpD4WJ4rdYD4oyYbHd9XViVRMY5yJ/RhAkyw7no5h0wAWVOQ0DucwAdvzZC4z2pENAUAZaVYMK5ieryTujO4uanDcRGBJJ5M9orsVq8kO/cf+NUzXjB+Sg8o2UlmNyrU4lxVD7NeKrpvIDTdx3Ikbx0MoK11KxKkfDe7AaSsq916O+N1nVAZcgIdlIH7LlqRZc6XIy32llOf3Qprbru0KTomgNLVuOrDrp1BBUQBVmW7XsKx6JVv4ASkepbPMK88VywZwtUtEPbVIA== Received: from SN7PR18CA0026.namprd18.prod.outlook.com (2603:10b6:806:f3::18) by CH3PR12MB9341.namprd12.prod.outlook.com (2603:10b6:610:1cd::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33; Tue, 12 Dec 2023 04:25:43 +0000 Received: from SA2PEPF000015C6.namprd03.prod.outlook.com (2603:10b6:806:f3:cafe::e0) by SN7PR18CA0026.outlook.office365.com (2603:10b6:806:f3::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend Transport; Tue, 12 Dec 2023 04:25:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SA2PEPF000015C6.mail.protection.outlook.com (10.167.241.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.18 via Frontend Transport; Tue, 12 Dec 2023 04:25:43 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:33 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:32 -0800 Received: from nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41 via Frontend Transport; Mon, 11 Dec 2023 20:25:31 -0800 From: Artemy Kovalyov To: CC: Thomas Monjalon , Subject: [PATCH 4/5] eal: fix first time primary autodetect Date: Tue, 12 Dec 2023 06:25:15 +0200 Message-ID: <20231212042517.164353-5-artemyko@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231212042517.164353-1-artemyko@nvidia.com> References: <20231212042517.164353-1-artemyko@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF000015C6:EE_|CH3PR12MB9341:EE_ X-MS-Office365-Filtering-Correlation-Id: 1eb852e5-80fa-47b6-34b5-08dbfaca67d9 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z9FIQ1zQsCJO5rvAhImzAaFiZVMSMKIyIS4p+ONtcY90ogfCIWHGTxvKHo8WY8m2Ic++OIXMAzLcxvC1YI9pLBCGXl53TVGxi0BV9+wVuY5rGDKndpzoB1ad4DPnXR9TqN7TFAElTBWpcpTUspJfyVU3bFZDRpi4mx9s4iBDie6MMlOpIz0sKXC8EjpEBsGkUph5d8BJp4CdY2Cw3odmJTk8FJjCRgUnZPbrhegqUqpnj0R4blMsftQdhYXEV8XNDSDj2Rcawzj3F1kWf6aSKGOeJ65DshJEus2tpK424HimHzOOrKTbvTkur73hQMK/yJHm5KE6sGC3DLk9j+Lq6cIUEGwqhYLkSbooeYRBSKKlZkok9VaLff0HVCp+8iGGVZ2nudFhgCuvSunBZXDDzpe8h6I/3RTuI5i3jn+dnRE+WivyraRgUvjKqee7jdSmQJ1IGUoUJZ4P5l+84HelL8Fz11NiYgcCsAB96+X4/becGXOAR51Q/U2TY5Ncw2gz8aUJG+KAa+QxLocxBZ6EKCW7uTLIgQvnxRKY46FAiFcAtfhYNjy30POQkPjlPQbdTPuw1a/hFT8QPlgYzliWQD0gdOTSPDVm8U/XvQP8qp7zgICPalho31+avMhMm5NvkZM9O6XYKxdwt0WWzHwoZb7hK3gzUzrhK3JXNyhPq3nsSuNdstgxa/geHS7TMrCX50gok/rkYLlA7JQFShRwWPx8Aqp6+EflG9zANk6y1+K94tw7i+/+btrAl9h94TQ/ X-Forefront-Antispam-Report: CIP:216.228.118.232; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(136003)(396003)(39860400002)(376002)(346002)(230922051799003)(82310400011)(451199024)(186009)(64100799003)(1800799012)(40470700004)(46966006)(36840700001)(40460700003)(26005)(336012)(6286002)(426003)(83380400001)(7696005)(2616005)(1076003)(47076005)(36860700001)(5660300002)(4326008)(8936002)(41300700001)(8676002)(4744005)(2906002)(6666004)(478600001)(316002)(6916009)(54906003)(70206006)(70586007)(36756003)(86362001)(7636003)(82740400003)(356005)(40480700001)(55016003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2023 04:25:43.4432 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1eb852e5-80fa-47b6-34b5-08dbfaca67d9 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.232]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF000015C6.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9341 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 If the configuration file is absent, the autodetection function should generate and secure it. Otherwise, multiple simultaneous openings could erroneously identify themselves as primary instances. Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Artemy Kovalyov --- lib/eal/linux/eal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c index 57da058..9b59cec 100644 --- a/lib/eal/linux/eal.c +++ b/lib/eal/linux/eal.c @@ -360,7 +360,7 @@ enum rte_proc_type_t * keep that open and don't close it to prevent a race condition * between multiple opens. */ - if (((mem_cfg_fd = open(pathname, O_RDWR)) >= 0) && + if (((mem_cfg_fd = open(pathname, O_RDWR | O_CREAT, 0600)) >= 0) && (fcntl(mem_cfg_fd, F_SETLK, &wr_lock) < 0)) ptype = RTE_PROC_SECONDARY; } From patchwork Tue Dec 12 04:25:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Artemy Kovalyov X-Patchwork-Id: 135053 X-Patchwork-Delegate: thomas@monjalon.net 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 BE8C3436CB; Tue, 12 Dec 2023 05:26:08 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6258842E04; Tue, 12 Dec 2023 05:25:49 +0100 (CET) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2060.outbound.protection.outlook.com [40.107.244.60]) by mails.dpdk.org (Postfix) with ESMTP id 4203642DEC; Tue, 12 Dec 2023 05:25:48 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PxkqzDR7HWattKXiCSfU4G54P3hr9EJ3KBPbclMzChImhuFWa8cr6sXJ+fZ7uCajq56uroqiN+uAmnZLvFNXPaqNf4q9Z1+YWnn59WSjiLgEqkVjQcaOwL3CUv2HE1xH5JkAfgfPq+AtXGZywEza57qu9ZcTaCj6gfLTk0VNnzkviPdPQ4acpRMWp8E/Y9eqX8YIqiSYH/JO4V4GHelrv8P3Wdv5HOklw3HHebHw7WLHv6sojMJI/AhrQnjDQlya2Cp8t04huEJWJpxEWM3ohW4nA2QwwPoA6beXuQB8zq4NwoJHEAzMsZeeuOUWuXxFpX33F2bmN5KSpFmHqGhONw== 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=hPncIhh389T5CImwB8mRjza68jNeLrk+md45s5u3sL8=; b=Zs9iQCJdpP7FoBFhVVozuv6wT+uK6q/59z7PdDaECyvBXdEdkLT6406G7EvjbEH4F0TjT6uEVjNg6qvMwl+MA1rE7NYbFBX3dcNeHrdMu5R7XRmXjhSZulYz6KXC2jwC5kUk7gyTr68jx1iTj84jsCcTa/k4p8bZpYWphSDpZkYxzm2DI5Ym/D+URa6qiJ3ORcfnBRcJ53suHXGC7RIRjjznj0qPmAVrv02wn7HD+UGDlGLFpMrZS9cRotfANQCvPAZub4OVQcCiCG6MY1xab4LuGRlDVqII8TDLz8b1WM0DYCJrnvjHrOug8uiZGV3T2VWjGthWcZGAFHW0OKp1MA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=dpdk.org 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 (0) 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=hPncIhh389T5CImwB8mRjza68jNeLrk+md45s5u3sL8=; b=HA3kKexmWq5+LhssQ+mxo8CE4k+hqKYxP63HAC112lh9CyLftqwezOSlJOOmTeXCzA7QupZdIJjDO0jvgQ7nq5JUR4nugSEZtyxVB35oWwMra+yQtuTt2im5clDp1z6RZ0ygMtmXabxAHgVBp2svb5r1AqIroRMEQyv/5FMhXAwXUEPl+7p4BQV6HcM/iHxMsGGRVdeGIbMbWBPsJm1/y5kkHQnq6tJmAEoTIyn5B1G5RGUrlJbP6iYZjjrHHX9E1aqpk/HK8Yue6VCvO4nFrp7Ez3Z8niaazGG4/ESeIyAICdfRy+ChB1KxrqvrsHzcI+/321vJaNIlCJEIgwCzTQ== Received: from SN7PR18CA0024.namprd18.prod.outlook.com (2603:10b6:806:f3::33) by DM4PR12MB5103.namprd12.prod.outlook.com (2603:10b6:5:392::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Tue, 12 Dec 2023 04:25:45 +0000 Received: from SA2PEPF000015C6.namprd03.prod.outlook.com (2603:10b6:806:f3:cafe::83) by SN7PR18CA0024.outlook.office365.com (2603:10b6:806:f3::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.33 via Frontend Transport; Tue, 12 Dec 2023 04:25:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by SA2PEPF000015C6.mail.protection.outlook.com (10.167.241.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.18 via Frontend Transport; Tue, 12 Dec 2023 04:25:45 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:34 -0800 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 20:25:34 -0800 Received: from nvidia.com (10.127.8.9) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41 via Frontend Transport; Mon, 11 Dec 2023 20:25:33 -0800 From: Artemy Kovalyov To: CC: Thomas Monjalon , , Anatoly Burakov Subject: [PATCH 5/5] eal: fix memzone fbarray cleanup Date: Tue, 12 Dec 2023 06:25:16 +0200 Message-ID: <20231212042517.164353-6-artemyko@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231212042517.164353-1-artemyko@nvidia.com> References: <20231212042517.164353-1-artemyko@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF000015C6:EE_|DM4PR12MB5103:EE_ X-MS-Office365-Filtering-Correlation-Id: 49e01f53-b328-4382-74a9-08dbfaca691d X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tsymkdPGvdsPXmQXWN4L7L+Fy0dBp9SK8t0Ga1zqsJ61CaaFFl9nGB4DdbLaAMvyN+EoOmo44me2DXqNlk3s+//WlbSD32Np23De/oubjYLABc6dXxruOd0PoCiA3dfw5dStZkeo34LaOQPUJlIHCzqME0E10HOsTnrB9ZOiiFEIiaG+TSLhZlNeqZHDNfXULA/2/58cK88I15JpfP/wYAeinAycK+8KhId2lX+oSQDqrOhh4XvYmPrryKyaZCERlcWk3YPlKP36erGZZjCiRHmREt9b4kKNaCTAj9NivF1bmlBHwYhSpwVrjq3kCvCob6Ah7OCGhbkFxo6FhKhzv7ep6kjAksiDZp/AmfoykoUdna1675Dw8wJOOJ0O3QN68r6ORzLrqFV+QWpntYoZ7Re2GZYj0llpP/nUPyVaUQwrgKcsixWChOr+GhQaqUldjkeckjCcCENL3p8NEdQv6sc3LRXXiRoXr5mcPPim/kvVMcMtXa37w05k1TvcvE+EBfQ9z6rNUi9VHjrbz/ju47Zq/BJAhC5aQgpkdp+eO4EueAlZ+x5MH3OLIp4PLJl0bIROPrwHkw28lM1vKmP/sU29qlY0BmaGL8by+hvsIA6zdLVH1TsPcWnGOgzljZNNwpl7iM6zgXJPZVUOFvWg/PE8f5si2AnQF00sGDlvBmQVnxXqoNDQz39E93RvGUkGp297RUMgA88Gu6C3PorMMzLrxtlngXUaQnUmvIqAPsj95+6Mt+447v30foRXr0uJ X-Forefront-Antispam-Report: CIP:216.228.118.232; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(346002)(39860400002)(136003)(376002)(396003)(230922051799003)(451199024)(186009)(64100799003)(1800799012)(82310400011)(46966006)(36840700001)(40470700004)(41300700001)(36860700001)(47076005)(1076003)(426003)(336012)(26005)(83380400001)(2616005)(6286002)(82740400003)(86362001)(36756003)(356005)(7636003)(5660300002)(316002)(8676002)(8936002)(4326008)(2906002)(6666004)(7696005)(6916009)(54906003)(70586007)(70206006)(478600001)(40460700003)(55016003)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2023 04:25:45.5683 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 49e01f53-b328-4382-74a9-08dbfaca691d X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.232]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF000015C6.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5103 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 The initialization of the Memzone file-backed array ensures its uniqueness by employing an exclusive lock. This is crucial because only one primary process can exist per specific shm_id, which is further protected by the exclusive EAL runtime configuration lock. However, during the process closure, the exclusive lock on both the fbarray and the configuration is not explicitly released. The responsibility of releasing these locks is left to the generic quit procedure. This can lead to a potential race condition when the configuration is released before the fbarray. To address this, we propose explicitly closing the memzone fbarray. This ensures proper order of operations during process closure and prevents any potential race conditions arising from the mismatched lock release timings. Fixes: af75078fece3 ("first public release") Cc: stable@dpdk.org Signed-off-by: Artemy Kovalyov --- lib/eal/common/eal_common_memzone.c | 12 ++++++++++++ lib/eal/common/eal_private.h | 5 +++++ lib/eal/linux/eal.c | 1 + 3 files changed, 18 insertions(+) diff --git a/lib/eal/common/eal_common_memzone.c b/lib/eal/common/eal_common_memzone.c index 1f3e701..7db8029 100644 --- a/lib/eal/common/eal_common_memzone.c +++ b/lib/eal/common/eal_common_memzone.c @@ -447,6 +447,18 @@ return ret; } +void +rte_eal_memzone_cleanup(void) +{ + struct rte_mem_config *mcfg; + + mcfg = rte_eal_get_configuration()->mem_config; + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) { + rte_fbarray_destroy(&mcfg->memzones); + } +} + /* Walk all reserved memory zones */ void rte_memzone_walk(void (*func)(const struct rte_memzone *, void *), void *arg) diff --git a/lib/eal/common/eal_private.h b/lib/eal/common/eal_private.h index 4d2e806..944c365 100644 --- a/lib/eal/common/eal_private.h +++ b/lib/eal/common/eal_private.h @@ -81,6 +81,11 @@ struct rte_config { int rte_eal_memzone_init(void); /** + * Cleanup the memzone subsystem (private to eal). + */ +void rte_eal_memzone_cleanup(void); + +/** * Fill configuration with number of physical and logical processors * * This function is private to EAL. diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c index 9b59cec..dfcbe64 100644 --- a/lib/eal/linux/eal.c +++ b/lib/eal/linux/eal.c @@ -1375,6 +1375,7 @@ static void rte_eal_init_alert(const char *msg) eal_trace_fini(); eal_mp_dev_hotplug_cleanup(); rte_eal_alarm_cleanup(); + rte_eal_memzone_cleanup(); /* after this point, any DPDK pointers will become dangling */ rte_eal_memory_detach(); rte_eal_malloc_heap_cleanup();