From patchwork Tue Nov 2 10:08:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Kozlyuk X-Patchwork-Id: 103470 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 A2E58A0C4E; Tue, 2 Nov 2021 11:08:41 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7DE7F41101; Tue, 2 Nov 2021 11:08:38 +0100 (CET) Received: from AZHDRRW-EX01.nvidia.com (azhdrrw-ex01.nvidia.com [20.51.104.162]) by mails.dpdk.org (Postfix) with ESMTP id B64D940689; Tue, 2 Nov 2021 11:08:36 +0100 (CET) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) by mxs.oss.nvidia.com (10.13.234.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.858.15; Tue, 2 Nov 2021 03:08:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZosbvaN1zb/K0Ng3ulD5Al98S0NPvpzydxbW6vhgB9WxdpA5FeCHFs3bhDfndCU7XdPE5roEwDkzh5E0j6lIZN1MZROR2NEVvFE296fExGtWlxJGCU6KXz/JeTiY0di5DMjusJoHbQKH5M7S3vfV52kOLNfWYsun6QhwLUiPwVa0hprmkjEPB+smcgwW1rFWvy6WAFrC1ZfCoit32zr6Y2MUDH8qdYrnFA1m2dlLvBcG+TZwx1nhY0MTewBcjpIXoxJfHod+8AWPptl1livbNkjFP8cYS6Zxr5hPTBGbJkLwyFmiWbLzNMXFvlg3kr7/cMsIrzdj5zlj3daE3Gqcvw== 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=IADcUGopLti3pFcusO7sSbfhD+0bfc0oCGw5L2d23jQ=; b=ExrlsXGH54L25Hrg93NMXYyzvQ7dpzdmYezili7wMVXpS/tDW6fG/aZM1m2nA6MxVA8YCWXv0OQRPsJLtaZnFkEBoHyxSBfp4LftZYtg6oNADq2uQ54VFMVPqlIWdDrFQ4PU4FJXpyEsWNxqhRsQb2ZIzdy0qR656ARPS962UxzD/7wIoTVwSP+QBSlGUp6GxuOaaJVGMJBf3mi2xkLgprYEgnH5Ha2jhRbTusvy6fAryuOjv0/sdmmbmJvqtfMEaJpwupOtAGTmP0hhNGm8WKwxUP8bEncMuI7PprDKyQ+rbInt8M2RMpGAO3WFTd/a4ZKMSqyIsQbsoZHd+zQwew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=quarantine sp=quarantine 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=IADcUGopLti3pFcusO7sSbfhD+0bfc0oCGw5L2d23jQ=; b=fIoI874ZcQZ9ITTZCbIPvb1TXibmYdIqDtxwU2//BQNjswZsnFAmQDnc0w608+xSLA8ej9QieQvCzDnO0JlkO2pdbK2gHi4je+ukNm00BLdlB4jFZjip6/+Sm1jgmSBRIdvjCRga4myuaNGs+sHHQ4ei1zpmyUDcjxysgLIBATLrUKD1fu9WRt9sNogAYZgvc0emVkc7ypXLvXTt2LTlWDBgEBB3/kTAttfXsEn7IDMirT+hzsYknpY0Rko2RhJ9j/xckial3NI0qJDSBEgexdYxoO9U4o4LYVVJ/K5lrtd24FRdzLL9hd4hGB+K/k/3MjSGelZKYe0Bol+PRDSgRw== Received: from BN0PR04CA0108.namprd04.prod.outlook.com (2603:10b6:408:ec::23) by BN9PR12MB5162.namprd12.prod.outlook.com (2603:10b6:408:11b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov 2021 10:08:33 +0000 Received: from BN8NAM11FT014.eop-nam11.prod.protection.outlook.com (2603:10b6:408:ec:cafe::1) by BN0PR04CA0108.outlook.office365.com (2603:10b6:408:ec::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.10 via Frontend Transport; Tue, 2 Nov 2021 10:08:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by BN8NAM11FT014.mail.protection.outlook.com (10.13.177.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4649.14 via Frontend Transport; Tue, 2 Nov 2021 10:08:33 +0000 Received: from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Tue, 2 Nov 2021 10:08:31 +0000 From: Dmitry Kozlyuk To: CC: , , Bruce Richardson Date: Tue, 2 Nov 2021 12:08:15 +0200 Message-ID: <20211102100817.916303-2-dkozlyuk@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102100817.916303-1-dkozlyuk@nvidia.com> References: <20211101073701.825389-1-dkozlyuk@nvidia.com> <20211102100817.916303-1-dkozlyuk@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL111.nvidia.com (172.20.187.18) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f12ffa80-d526-41e6-4c18-08d99de8ba67 X-MS-TrafficTypeDiagnostic: BN9PR12MB5162: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: u8j7+I9eJed3rDEGnx5kvCpRxmONMmeCT8ryBhPKLJZBdj1oqKnnewWksJM+OpPN4zgHKOgPXmpkIQgewI0HjuWP/ho/bbOakVn5vp69P16pQ6u8vtNUUs+1y90BKlEmdTyz1CS8jqqsf1WFi1aEOuWvLYncVD+Xitysjca6LM9ytr7cs44AJC2TIvjX1yov1nNzXQwbla84lc//+MmVkKDxedTpK+Tcd/PKabdlkCopgnvuoPvoY8R4zysPN/HxJD4/czpeDb/Lo0m4pymZBJeuSk/alnDQ7b5jS/d8ayfnGyXM7tM6YXGcWjxB2KvOo/ZFplVbb3w7Cs3qgTSmBLMxSy/X+Dgb4Tihi1Mn8WJhzoGc9Xxp/6tZV6xGLCODBlvXioyZ/gPxYQdrQBLi6fFxWT8ABFDBzm+7dISsmUswwFf7S2TVMB55UdSrzKxCogy9STowO7WcWoFd4AywH0Sf716ImSUt0GXgEb4ud2PWJ6pAPdDQ2X60xtUdeU6ncSXKuXJ2p+55KSvHzZ76g6zIdXwXbMZwn57KyGKkOjBWDsRsLZvRO0XIdcT+Ok8SFsa7e9TphqJp+lGKOWSW0ODsa250iVeWF4vSRGwHj1YHDmR3OSyzRxHIT6TVleo2pDBoD1RxZF9Os1hdJcc0u7CMgcsEFYeOkr2AL579uHeorGxEMc5K0TimOZ6iFyPmwGjQMNYX0ZHsCytlgyUI/Q== X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(36860700001)(55016002)(36756003)(6666004)(6286002)(107886003)(7696005)(8676002)(26005)(47076005)(16526019)(508600001)(316002)(4326008)(83380400001)(82310400003)(450100002)(336012)(54906003)(8936002)(86362001)(6916009)(2906002)(426003)(2616005)(356005)(1076003)(7636003)(186003)(70206006)(5660300002)(70586007); DIR:OUT; SFP:1101; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 10:08:33.3222 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f12ffa80-d526-41e6-4c18-08d99de8ba67 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT014.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5162 Subject: [dpdk-dev] [PATCH v3 1/3] eal/freebsd: fix IOVA mode selection 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 Sender: "dev" FreeBSD EAL selected IOVA mode PA even in --no-huge mode where PA are not available. Memory zones were created with IOVA equal to RTE_BAD_IOVA with no indication this field is not usable. Change IOVA mode detection: 1. Always allow to force --iova-mode=va. 2. In --no-huge mode, disallow forcing --iova-mode=pa, and select VA. 3. Otherwise select IOVA mode according to bus requests, default to PA. In case contigmem is inaccessible, memory initialization will fail with a message indicating the cause. Fixes: c2361bab70c5 ("eal: compute IOVA mode based on PA availability") Cc: benjamin.walker@intel.com Cc: stable@dpdk.org Signed-off-by: Dmitry Kozlyuk Acked-by: Bruce Richardson --- lib/eal/freebsd/eal.c | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/lib/eal/freebsd/eal.c b/lib/eal/freebsd/eal.c index 9935356ed4..2c2baaa691 100644 --- a/lib/eal/freebsd/eal.c +++ b/lib/eal/freebsd/eal.c @@ -677,6 +677,8 @@ rte_eal_init(int argc, char **argv) const struct rte_config *config = rte_eal_get_configuration(); struct internal_config *internal_conf = eal_get_internal_configuration(); + bool has_phys_addr; + enum rte_iova_mode iova_mode; /* checks if the machine is adequate */ if (!rte_cpu_is_supported()) { @@ -777,19 +779,30 @@ rte_eal_init(int argc, char **argv) return -1; } - /* if no EAL option "--iova-mode=", use bus IOVA scheme */ - if (internal_conf->iova_mode == RTE_IOVA_DC) { - /* autodetect the IOVA mapping mode (default is RTE_IOVA_PA) */ - enum rte_iova_mode iova_mode = rte_bus_get_iommu_class(); - - if (iova_mode == RTE_IOVA_DC) - iova_mode = RTE_IOVA_PA; - rte_eal_get_configuration()->iova_mode = iova_mode; - } else { - rte_eal_get_configuration()->iova_mode = - internal_conf->iova_mode; + /* + * PA are only available for hugepages via contigmem. + * If contigmem is inaccessible, rte_eal_hugepage_init() will fail + * with a message describing the cause. + */ + has_phys_addr = internal_conf->no_hugetlbfs == 0; + iova_mode = internal_conf->iova_mode; + if (iova_mode == RTE_IOVA_PA && !has_phys_addr) { + rte_eal_init_alert("Cannot use IOVA as 'PA' since physical addresses are not available"); + rte_errno = EINVAL; + return -1; } - + if (iova_mode == RTE_IOVA_DC) { + RTE_LOG(DEBUG, EAL, "Specific IOVA mode is not requested, autodetecting\n"); + if (has_phys_addr) { + RTE_LOG(DEBUG, EAL, "Selecting IOVA mode according to bus requests\n"); + iova_mode = rte_bus_get_iommu_class(); + if (iova_mode == RTE_IOVA_DC) + iova_mode = RTE_IOVA_PA; + } else { + iova_mode = RTE_IOVA_VA; + } + } + rte_eal_get_configuration()->iova_mode = iova_mode; RTE_LOG(INFO, EAL, "Selected IOVA mode '%s'\n", rte_eal_iova_mode() == RTE_IOVA_PA ? "PA" : "VA"); From patchwork Tue Nov 2 10:08:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Kozlyuk X-Patchwork-Id: 103471 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 D9230A0C4E; Tue, 2 Nov 2021 11:08:47 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8F2F14111D; Tue, 2 Nov 2021 11:08:39 +0100 (CET) Received: from AZHDRRW-EX02.NVIDIA.COM (azhdrrw-ex02.nvidia.com [20.64.145.131]) by mails.dpdk.org (Postfix) with ESMTP id D655341104 for ; Tue, 2 Nov 2021 11:08:38 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.175) by mxs.oss.nvidia.com (10.13.234.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.858.15; Tue, 2 Nov 2021 03:08:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KPM9563N0QubpX/O6xHXfZ93B6W7Rgby3b6law/HpZlmFndgRodPISO+sJWw8bwae1xqWj4GOr2pe84gct5FiSqj1B9QjHTGm/YX3ukZOljSMfaVNaSeyoDCTDBCmrxv2iwIEZNE/qsxMKUmquanuIEpLaErFjnowkb2ZLAPEer0lkLTsteeQUM3yUlkHkTjIMum2roWwmwvCvL4jQJEyJCCUNU/4wTf9sEodka7l/dvJYkJJg3hHQREMgccVWqhG7/bK2JonGYf7uW0lT37XnVmP/Yf8zJetI8Nlwo2ijpEV/crfjBQ5wInKQZYvceeX/46whe2LwRIa2OvM5tAlw== 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=DBXtWhzUHH7DcP/aQovzJsaJaipgjplM8P7R2r8aa1I=; b=UsiO/sqTVzwt6TZdDPNmsYpoToM4p54nRY0oVu44cV6jfSixWsElKr5MoZlsGTIEJGFDprRpIYqhsv1Hvkz2Gpyef+WwIg8oxFJ99jywh8r3tsT04hn1XK4QOKUi+PPRi43O8MYOJrFJkZpKBRrGWocFvGjnujnWrek4R9DDHub01DICACM58U2wHizkYM19KPjnkXAJx1g0R1MnXMmuLj4jd/O/ZmymWIy2DdnunXrgRZvAjlMLAyiNvH8AchTr0jl0v4EnZDAEuRoV4K/S8MauiGwIqFDdGjuUKKIAc45GdMlb8pQHhqGjbIe/GEiltLbc+o2LbFlCWBCQnsQPuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip is 216.228.112.34) smtp.rcpttodomain=6wind.com smtp.mailfrom=nvidia.com; dmarc=temperror 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=DBXtWhzUHH7DcP/aQovzJsaJaipgjplM8P7R2r8aa1I=; b=K3ypeJTH9DGkJYiyqxpEIYydkz6GthCqQYrh9zN5hO8chV5UUOsmkGa6ktCKkPI/IHQCn/OnYtsJsKF1LxpcyqnNptp+Yf0K0m189tO3rIsu1kxAouZ7zhFychmHBTJYZ6m6crjGBbx4G6tEfYCn3ck20ufi8wb4gS+7EoJ2mp4qwjWhLCM5UJfbNUwUlwS31n0BFzj4LXVK2yda9VTP14j1RlrHn40NbnWMQv5OAoXaUYm9viFzkMyC5vI+GVtTFdTzhQm3yQ5Eh+p5J9BJG8LJURrzeKWsSXTRHVFxNrSYDDOQvPVBmJgtZFlnwrxBhEyffHRQVhJ/UxDpOokZCw== Received: from BN9PR03CA0234.namprd03.prod.outlook.com (2603:10b6:408:f8::29) by MWHPR12MB1853.namprd12.prod.outlook.com (2603:10b6:300:113::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.19; Tue, 2 Nov 2021 10:08:36 +0000 Received: from BN8NAM11FT065.eop-nam11.prod.protection.outlook.com (2603:10b6:408:f8:cafe::2d) by BN9PR03CA0234.outlook.office365.com (2603:10b6:408:f8::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend Transport; Tue, 2 Nov 2021 10:08:36 +0000 X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; 6wind.com; dkim=none (message not signed) header.d=none;6wind.com; dmarc=temperror action=none header.from=nvidia.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of nvidia.com: DNS Timeout) Received: from mail.nvidia.com (216.228.112.34) by BN8NAM11FT065.mail.protection.outlook.com (10.13.177.63) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4649.14 via Frontend Transport; Tue, 2 Nov 2021 10:08:35 +0000 Received: from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Tue, 2 Nov 2021 10:08:33 +0000 From: Dmitry Kozlyuk To: CC: Yu Jiang , Olivier Matz , Andrew Rybchenko Date: Tue, 2 Nov 2021 12:08:16 +0200 Message-ID: <20211102100817.916303-3-dkozlyuk@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102100817.916303-1-dkozlyuk@nvidia.com> References: <20211101073701.825389-1-dkozlyuk@nvidia.com> <20211102100817.916303-1-dkozlyuk@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL111.nvidia.com (172.20.187.18) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 81450897-bde1-4769-f55e-08d99de8bb7b X-MS-TrafficTypeDiagnostic: MWHPR12MB1853: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Fse8O3PejfegkUJXMK5gB7WnEvEGnFf0Asie4A0Xe3AqTU6Do7mC9y8fxhe12F8CXnro/RAS3kWFOpb7JOxBpMxhQ9ifix5VXIsA3G0H1xbQUluPbqAh7+bb7KBseCZMTsiSXKrsuHhmvHoCBYzenwobdpfvLFslXhiVnlhHeOxhATKiq3mHSlcFQID1SW3fuxi+joEkFchVhVb6cz7CYN494rGZwUABSsJ+MAVUdd5uULDd3ioORefbLchgmtHL4MpAjFMq397/kNmX1Egz/QhdyCuc78Sv9bZWILI2RMm6iWJfP+Q/aX93abI+C+6tvcl6n5LSweRGVkaZQCDaFILjoubRLnGLHxSCdAAfwlMNpt0tQ/EMjv7IR6vmpBYUxbludVChQLPdJqSidNzZPUGm78KKlEs3OQQQu6yez7GudoYkp4L1Xe9wESLktSLMwbWSuJh1gVC8dlI2LvXPvyADPLfbs7y4g4roiczLhT6xaxyqZdSK/XXTUJQd+ZQAUzrPQoCASR6U9fH4qWEixLfFT0Saqx8k+JJZt6ZuungdN4809wdEmftvLMYXTGVtIaYCsTTg5LbgNgZ/Vd7TI/+DvHm3gmw2xyzCgRS/LD+KFJXjX1IjvZOhbjuFXdSFsGIDILS+iRJ1waKX527VXcAUOYRHFn8lPRwU42zT3PU/nWvLOdfrQP1HEI8Myms4KdQ6J3tI3STG4MtGENtwKA== X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(36840700001)(46966006)(4326008)(7696005)(70206006)(6666004)(107886003)(6286002)(70586007)(82310400003)(6916009)(508600001)(26005)(2616005)(336012)(54906003)(55016002)(186003)(63350400001)(36860700001)(356005)(16526019)(63370400001)(8676002)(7636003)(47076005)(83380400001)(1076003)(426003)(5660300002)(36756003)(86362001)(2906002)(8936002)(36906005)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 10:08:35.1223 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 81450897-bde1-4769-f55e-08d99de8bb7b X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT065.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1853 Subject: [dpdk-dev] [PATCH v3 2/3] app/test: fix mempool test on FreeBSD 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 Sender: "dev" FreeBSD EAL does not implement rte_mem_virt2iova() causing an error: EAL: Test assert test_mempool_flag_non_io_unset_when_populated_with_valid_iova line 781 failed: Cannot get IOVA test failed at test_mempool():1030 Test Failed Change unit test to use rte_memzone_reserve() to allocate memory, which allows to obtain IOVA directly. Bugzilla ID: 863 Fixes: 11541c5c81dd ("mempool: add non-IO flag") Reported-by: Yu Jiang Signed-off-by: Dmitry Kozlyuk --- app/test/test_mempool.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/app/test/test_mempool.c b/app/test/test_mempool.c index 4b0f6b0e7f..ced20dcdc3 100644 --- a/app/test/test_mempool.c +++ b/app/test/test_mempool.c @@ -740,16 +740,17 @@ test_mempool_events_safety(void) static int test_mempool_flag_non_io_set_when_no_iova_contig_set(void) { - void *virt = NULL; + const struct rte_memzone *mz = NULL; + void *virt; rte_iova_t iova; size_t size = MEMPOOL_ELT_SIZE * 16; struct rte_mempool *mp = NULL; int ret; - virt = rte_malloc("test_mempool", size, rte_mem_page_size()); - RTE_TEST_ASSERT_NOT_NULL(virt, "Cannot allocate memory"); - iova = rte_mem_virt2iova(virt); - RTE_TEST_ASSERT_NOT_EQUAL(iova, RTE_BAD_IOVA, "Cannot get IOVA"); + mz = rte_memzone_reserve("test_mempool", size, SOCKET_ID_ANY, 0); + RTE_TEST_ASSERT_NOT_NULL(mz, "Cannot allocate memory"); + virt = mz->addr; + iova = mz->iova; mp = rte_mempool_create_empty("empty", MEMPOOL_SIZE, MEMPOOL_ELT_SIZE, 0, 0, SOCKET_ID_ANY, RTE_MEMPOOL_F_NO_IOVA_CONTIG); @@ -772,14 +773,15 @@ test_mempool_flag_non_io_set_when_no_iova_contig_set(void) ret = TEST_SUCCESS; exit: rte_mempool_free(mp); - rte_free(virt); + rte_memzone_free(mz); return ret; } static int test_mempool_flag_non_io_unset_when_populated_with_valid_iova(void) { - void *virt = NULL; + const struct rte_memzone *mz = NULL; + void *virt; rte_iova_t iova; size_t total_size = MEMPOOL_ELT_SIZE * MEMPOOL_SIZE; size_t block_size = total_size / 3; @@ -789,12 +791,12 @@ test_mempool_flag_non_io_unset_when_populated_with_valid_iova(void) /* * Since objects from the pool are never used in the test, * we don't care for contiguous IOVA, on the other hand, - * reiuring it could cause spurious test failures. + * requiring it could cause spurious test failures. */ - virt = rte_malloc("test_mempool", total_size, rte_mem_page_size()); - RTE_TEST_ASSERT_NOT_NULL(virt, "Cannot allocate memory"); - iova = rte_mem_virt2iova(virt); - RTE_TEST_ASSERT_NOT_EQUAL(iova, RTE_BAD_IOVA, "Cannot get IOVA"); + mz = rte_memzone_reserve("test_mempool", total_size, SOCKET_ID_ANY, 0); + RTE_TEST_ASSERT_NOT_NULL(mz, "Cannot allocate memory"); + virt = mz->addr; + iova = mz->iova; mp = rte_mempool_create_empty("empty", MEMPOOL_SIZE, MEMPOOL_ELT_SIZE, 0, 0, SOCKET_ID_ANY, 0); @@ -827,7 +829,7 @@ test_mempool_flag_non_io_unset_when_populated_with_valid_iova(void) exit: rte_mempool_free(mp); - rte_free(virt); + rte_memzone_free(mz); return ret; } From patchwork Tue Nov 2 10:08:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Kozlyuk X-Patchwork-Id: 103472 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 177E6A0C4E; Tue, 2 Nov 2021 11:08:54 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9EBA841123; Tue, 2 Nov 2021 11:08:40 +0100 (CET) Received: from AZHDRRW-EX02.NVIDIA.COM (azhdrrw-ex02.nvidia.com [20.64.145.131]) by mails.dpdk.org (Postfix) with ESMTP id 20DB541120 for ; Tue, 2 Nov 2021 11:08:40 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.173) by mxs.oss.nvidia.com (10.13.234.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.858.15; Tue, 2 Nov 2021 03:08:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V/onVCIl7uJYgeDRxzIW+P6IsTj1XjwZK+KatlMQ7TcPQg4Xp2YayNh7iVCKlOi8na2fQw16CtpwdKPpffI7a70uIl2UJeH2JdjVT9cytsI955R0poj5ztDpmEQV/sat4Rw+hRwueZqAtyF4kpCDjheOboZs74T5OvaTYee/oeqo4ERvHyuuPaKtRPrMa+y3yJiBn+zKXMc3zBqePntgLvP03gp/RysWEOOG1aUv+Rji+Ha5fWnIIwY2i6eQvW/i6Cj8+EnIqIvwFeGBnsOfJtpiUpcSHsN+st9W8iU+1lKH6Rlu7D6J9cP29TmwPZBWiH6R55EYPQLnFvPgOouSmQ== 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=A3XgGjy+WZyeGlT4i45rwKJ7rjZy5/pqPQH+YXWwIEg=; b=FieR1LyiSTG8OYPePtqPD7SmrUvCXGWt4T4421eIer+hFa18X9kjXKvMZmmQCSbNzPM6dLry5kWvSHs8RYfR9UQz+bozh6lU7TWR9M0uapqo7v/un5y5zct098/cjt0vQ2MtW6aKIhOUXMiNCGBdElG11CPQLbp2n2wTr67X/3rEQoytiQYyjSvr/A0jToWb2azaC9of06mOmPhoalXzna4Y7ELMMmFZdHv+RkrI0NI0pRew8m48I5tIQnI/OckcqMjwhdD6SW/dkYUAZpBp4pLL0nF03eiqS4O94A52VGJGe3FMAuvd/qax+BFZ6gRXUExNdDW2Ao2TADj0MS18fQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=oktetlabs.ru smtp.mailfrom=nvidia.com; dmarc=pass (p=quarantine sp=quarantine 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=A3XgGjy+WZyeGlT4i45rwKJ7rjZy5/pqPQH+YXWwIEg=; b=KiYft4EwoY0n8uKA1Dz00Mb4xF3aFKa1eR+PMFUKmhVciI6I+QJtmDl2MKGZRRVBNviv3bijdb0lJCM4kP9fiVl0t9UPNyFjmSLRw9nQBldHAk9ehssmSQT3uzsL6HUX2/0qLgB4jTIWbX5zctR8LcAX2jS6VPJZ1oKy3KfqWcBWwP3sXWrcoJKFEMa1wGpZWUhf1F3TiMmCXk0mSOkXbyMyc1zgKYay28tUqSf+vN2mtncRLT/Rb5xMPaqoqFMUwdSFnzesIX/u8RVWsPjRvTFSwbKvn44biFdF+yVyVJbJUJvrry0lRsROhKEs2CCOgkFkWj9vTc4QLj0lVo3MOg== Received: from BN0PR04CA0097.namprd04.prod.outlook.com (2603:10b6:408:ec::12) by MN2PR12MB3165.namprd12.prod.outlook.com (2603:10b6:208:ac::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Tue, 2 Nov 2021 10:08:37 +0000 Received: from BN8NAM11FT014.eop-nam11.prod.protection.outlook.com (2603:10b6:408:ec:cafe::b4) by BN0PR04CA0097.outlook.office365.com (2603:10b6:408:ec::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.18 via Frontend Transport; Tue, 2 Nov 2021 10:08:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by BN8NAM11FT014.mail.protection.outlook.com (10.13.177.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4649.14 via Frontend Transport; Tue, 2 Nov 2021 10:08:36 +0000 Received: from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Tue, 2 Nov 2021 10:08:34 +0000 From: Dmitry Kozlyuk To: CC: Olivier Matz , Andrew Rybchenko Date: Tue, 2 Nov 2021 12:08:17 +0200 Message-ID: <20211102100817.916303-4-dkozlyuk@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102100817.916303-1-dkozlyuk@nvidia.com> References: <20211101073701.825389-1-dkozlyuk@nvidia.com> <20211102100817.916303-1-dkozlyuk@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL111.nvidia.com (172.20.187.18) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e88e0bb7-f4b7-4fdb-533d-08d99de8bc20 X-MS-TrafficTypeDiagnostic: MN2PR12MB3165: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1265; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EfjiIGfM9Z6I4oFD7P5B3WMTy6Re2e0/tfcYPfevsB0AuMdA8dUvT0lCzYq3yEEd47JSxTBcn7cAjg7n+whYWJrAko50fr0AL1HDbETxzEkkUdt/hQDQsmiWBUXG1ssz9wQ47ubvdteeCG67a75etCaat4JosZ//tkX/FSWYLLmA0kzW/cNY/9nAz/e1c/QjuL5jEmRIKyvJAEuW6EltdTZ2A3Z/uBLsaSNw+hxJvNbaGFhgfOiQP80oHMOc3v0Tbk0NJosFp8haRDIN+eFZQgKe3u3VEu3hiybpBLRWcOgluSYezYVEzQ7Iv3LGQBugrgfPUZB3hW94g8LcTAO2pRKsWCS6hygFHaDI4SztsGdTDUxl9UgLpAiMqvA3TSPjSBm9sXydG7pPpR3ddlkUyQ2FkYeBE4pCFHGoyA6CXWlku8xf8DLXNmhQCG8A+PF4VlCByUX3gCepq3MR8kBT98pTiCknU35IKMoQbMEGU8bcjKcgc9CoFRMkiNNQPfV97ImiuQ/mzINgb69cOKzdeQfbB3aXskHOZP9DpPbT3itVBUEAvNn7AtugjeKNgGbEAxrxv7DNw+jrMSDcIpvCaXSILbhzvIkiVoAxQbkBoaBSr7LjxsTQSm0I8qqzxswkFFSVJf6hpYN6ht379kPx+QFaRKdrmkJf8hVPkTWy3sxCFnafqE62yEVxD/GibmJ4epf3nGjfNQHq12erKaHPILHOZS8w0miQyNm12Q5WV1Q= X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(2906002)(26005)(6286002)(7696005)(47076005)(36860700001)(508600001)(55016002)(36756003)(186003)(6666004)(16526019)(8676002)(6916009)(2616005)(86362001)(8936002)(54906003)(83380400001)(336012)(107886003)(426003)(7636003)(70586007)(356005)(4326008)(5660300002)(1076003)(316002)(82310400003)(70206006)(14583001); DIR:OUT; SFP:1101; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2021 10:08:36.2255 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e88e0bb7-f4b7-4fdb-533d-08d99de8bc20 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT014.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3165 Subject: [dpdk-dev] [PATCH v3 3/3] app/test: fix mempool test in no-huge mode 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 Sender: "dev" Amount of locked memory for regular users is limited, it is usually 64 KB by default. Hitting this limit in rte_mempool_populate_anon() resulted in not populating the mempool, and a test case failure: EAL: Test assert test_mempool_events line 585 failed: Failed to populate mempool empty1: Success test failed at test_mempool():1019 Test Failed Decrease the amount of mapped anonymous memory to fit the limit. While there, make all function-local constants lowercase. Fixes: 11541c5c81dd ("mempool: add non-IO flag") Reported-by: Olivier Matz Signed-off-by: Dmitry Kozlyuk --- app/test/test_mempool.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/app/test/test_mempool.c b/app/test/test_mempool.c index ced20dcdc3..a451608558 100644 --- a/app/test/test_mempool.c +++ b/app/test/test_mempool.c @@ -515,17 +515,19 @@ test_mempool_events(int (*populate)(struct rte_mempool *mp)) #undef RTE_TEST_TRACE_FAILURE #define RTE_TEST_TRACE_FAILURE(...) do { goto fail; } while (0) - static const size_t CB_NUM = 3; - static const size_t MP_NUM = 2; + static const size_t callback_num = 3; + static const size_t mempool_num = 2; + static const unsigned int mempool_elt_size = 64; + static const unsigned int mempool_size = 64; - struct test_mempool_events_data data[CB_NUM]; - struct rte_mempool *mp[MP_NUM], *freed; + struct test_mempool_events_data data[callback_num]; + struct rte_mempool *mp[mempool_num], *freed; char name[RTE_MEMPOOL_NAMESIZE]; size_t i, j; int ret; memset(mp, 0, sizeof(mp)); - for (i = 0; i < CB_NUM; i++) { + for (i = 0; i < callback_num; i++) { ret = rte_mempool_event_callback_register (test_mempool_events_cb, &data[i]); RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to register the callback %zu: %s", @@ -541,12 +543,12 @@ test_mempool_events(int (*populate)(struct rte_mempool *mp)) /* Create mempool 0 that will be observed by all callbacks. */ memset(&data, 0, sizeof(data)); strcpy(name, "empty0"); - mp[0] = rte_mempool_create_empty(name, MEMPOOL_SIZE, - MEMPOOL_ELT_SIZE, 0, 0, + mp[0] = rte_mempool_create_empty(name, mempool_size, + mempool_elt_size, 0, 0, SOCKET_ID_ANY, 0); RTE_TEST_ASSERT_NOT_NULL(mp[0], "Cannot create mempool %s: %s", name, rte_strerror(rte_errno)); - for (j = 0; j < CB_NUM; j++) + for (j = 0; j < callback_num; j++) RTE_TEST_ASSERT_EQUAL(data[j].invoked, false, "Callback %zu invoked on %s mempool creation", j, name); @@ -555,7 +557,7 @@ test_mempool_events(int (*populate)(struct rte_mempool *mp)) ret = populate(mp[0]); RTE_TEST_ASSERT_EQUAL(ret, (int)mp[0]->size, "Failed to populate mempool %s: %s", name, rte_strerror(-ret)); - for (j = 0; j < CB_NUM; j++) { + for (j = 0; j < callback_num; j++) { RTE_TEST_ASSERT_EQUAL(data[j].invoked, true, "Callback %zu not invoked on mempool %s population", j, name); @@ -574,8 +576,8 @@ test_mempool_events(int (*populate)(struct rte_mempool *mp)) rte_strerror(rte_errno)); memset(&data, 0, sizeof(data)); strcpy(name, "empty1"); - mp[1] = rte_mempool_create_empty(name, MEMPOOL_SIZE, - MEMPOOL_ELT_SIZE, 0, 0, + mp[1] = rte_mempool_create_empty(name, mempool_size, + mempool_elt_size, 0, 0, SOCKET_ID_ANY, 0); RTE_TEST_ASSERT_NOT_NULL(mp[1], "Cannot create mempool %s: %s", name, rte_strerror(rte_errno)); @@ -587,7 +589,7 @@ test_mempool_events(int (*populate)(struct rte_mempool *mp)) "Unregistered callback 0 invoked on %s mempool populaton", name); - for (i = 0; i < MP_NUM; i++) { + for (i = 0; i < mempool_num; i++) { memset(&data, 0, sizeof(data)); sprintf(name, "empty%zu", i); rte_mempool_free(mp[i]); @@ -597,7 +599,7 @@ test_mempool_events(int (*populate)(struct rte_mempool *mp)) */ freed = mp[i]; mp[i] = NULL; - for (j = 1; j < CB_NUM; j++) { + for (j = 1; j < callback_num; j++) { RTE_TEST_ASSERT_EQUAL(data[j].invoked, true, "Callback %zu not invoked on mempool %s destruction", j, name); @@ -613,7 +615,7 @@ test_mempool_events(int (*populate)(struct rte_mempool *mp)) name); } - for (j = 1; j < CB_NUM; j++) { + for (j = 1; j < callback_num; j++) { ret = rte_mempool_event_callback_unregister (test_mempool_events_cb, &data[j]); RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to unregister the callback %zu: %s", @@ -622,10 +624,10 @@ test_mempool_events(int (*populate)(struct rte_mempool *mp)) return TEST_SUCCESS; fail: - for (j = 0; j < CB_NUM; j++) + for (j = 0; j < callback_num; j++) rte_mempool_event_callback_unregister (test_mempool_events_cb, &data[j]); - for (i = 0; i < MP_NUM; i++) + for (i = 0; i < mempool_num; i++) rte_mempool_free(mp[i]); return TEST_FAILED;