From patchwork Mon Nov 1 07:36:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Kozlyuk X-Patchwork-Id: 103300 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 B3630A0C52; Mon, 1 Nov 2021 08:37:32 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A8C7C41104; Mon, 1 Nov 2021 08:37:26 +0100 (CET) Received: from AZHDRRW-EX02.NVIDIA.COM (azhdrrw-ex02.nvidia.com [20.64.145.131]) by mails.dpdk.org (Postfix) with ESMTP id BAB1D410FE; Mon, 1 Nov 2021 08:37:24 +0100 (CET) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.47) 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; Mon, 1 Nov 2021 00:37:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Llr05C/SFEWAOeH2PkRuRmEWeD3ckQNE2I9K04AKbtoqNNcL/s3C+TiM4kuyd0SlW/LnQZ1IXqS9BoG/vkNU0n83kIBgLCfFI/9JOhmGFU6n3f1P6WrIzlYq9o5XVZ5yDl7CdSk7gnzqkTVSH16roLNoHhvRR0WjaB9YQUEMhlji+WzTGQwTI1qJWbmGuvsuRizF4PiizXmZaauydMm2JpnN5hPlDbztRnuANw2Ib4SqTwWPBfAzL2GdUk+KnaZBAe5wLn3IOHY/qjGg3xT+57rMGPzG5iuGhjFJuDANr0YHgzPTSBaO+VphWDbWR98C7+V2aw7+iJNLDn00NOJKRg== 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=5UVJlvazGUekMdzKtoQRIEN5ZQfemS3byuLadRqdqeE=; b=OxUXegPjQgppx7nuI8nqdUu10BIe8U7M+Z0MTq47SsMcHWUqqP7idrus3uxS3bWOC0pToqlfmGz8ttsPkPhPR66g8tCFwF2w4lJqCKRLH4PPc0AsCNnMgnbb24hW31todM3ERW4qCP/uJBxDlbqKthxjLlv6+6VuFbLJU/nTqZCOp3nwKQ4X8AvIo+2urXl9WcFQvMwhRKQY2ODwGP8lW4ed+ECsL0keKAlHM/xBwa/knnmIiyiF1koSJ/JCFKwuWgmQjWCtsgGFokfpUPoUR6xFNGOd2USNLoqNn26Z9luAdHTfKsCLNoJ9H19zoyf2xwrn0pMVDVkkNdQY0kMiqw== 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=5UVJlvazGUekMdzKtoQRIEN5ZQfemS3byuLadRqdqeE=; b=pMpagOKt9VOCWmCQzCT67Piwg/1ZJADHmkLt4Som2Ze3lKJX5UGwlwMo4K5n3mBTRp/g+3Xffrzygnznfaq1NZPkLJtK23q86kXmIq288vCRdPfxmJeWgLJZJhlbZOkGri7Oor8SJXLRmbJ3AsYvzNNfTokDLn0QQ8VuUnuRR9rkPfMZVwnWO7arUbNtW/vXtuJf+Lfyp/zGS3gJrNjWqvcCTjSN6QIQwTecgd4RTX+S1OZbygXhyiP5/UkfrDYsIHeosC0TD/FBSU+9SBVF6cert3BdMErG3WVTwEUb31Y0GaJ2jN+kynfs4LQYLTu6z6ehBsXiO7oMxLtuXNj35A== Received: from MW4PR04CA0338.namprd04.prod.outlook.com (2603:10b6:303:8a::13) by MN2PR12MB2926.namprd12.prod.outlook.com (2603:10b6:208:10a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Mon, 1 Nov 2021 07:37:19 +0000 Received: from CO1NAM11FT024.eop-nam11.prod.protection.outlook.com (2603:10b6:303:8a:cafe::fe) by MW4PR04CA0338.outlook.office365.com (2603:10b6:303:8a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15 via Frontend Transport; Mon, 1 Nov 2021 07:37:19 +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 CO1NAM11FT024.mail.protection.outlook.com (10.13.174.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4649.14 via Frontend Transport; Mon, 1 Nov 2021 07:37:19 +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; Mon, 1 Nov 2021 07:37:17 +0000 From: Dmitry Kozlyuk To: CC: Anatoly Burakov , , , Bruce Richardson Date: Mon, 1 Nov 2021 09:36:59 +0200 Message-ID: <20211101073701.825389-2-dkozlyuk@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211101073701.825389-1-dkozlyuk@nvidia.com> References: <20211029084051.679233-1-dkozlyuk@nvidia.com> <20211101073701.825389-1-dkozlyuk@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL105.nvidia.com (172.20.187.12) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f187ad47-a3f4-4907-eea2-08d99d0a6f46 X-MS-TrafficTypeDiagnostic: MN2PR12MB2926: 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: axnZaJmf81YH6r4twIo7f+xuo9Oa/FQTqhOeCQp49B+vYl/eDp1kadeCJ7CJPiBlDao3p/TQzngXvratbnDgVs94R2j+MB5zkoWjQgE3kQzV8KVAIi2cjtMjDntnRq7qA7QYcUZFNuMGNSi4Ng1/gQtgvaDko2V0kosOLIZXRnEfbvs+03AF4r+e097ZSNLEuRoXvqZ9Hc2XfUxsg/dkIRWv/DoOmdqpvYoxj+nE10uGlrnw547ZfQnDAj/HuMeyUsfK2ju49kf5XGZ1f04WmgiLTD7MfdC3/jot3YXZQzGjEeurwJxmumrLOPMPzt+2ipaTg5/VO24+pYH5WosJd6lGWjHTcnr5Ej2+yIYOCyje0RH3OpXQXwiiUtvKRfU8Y4AFOas9roC3XQ8RLnOxzRicMKKqi0cvsi3U7TT7f/O2kR4CPJ0WimSqXr+1Z1s/i4I9VWhzDsR70v3I4MJ/KLToF86yRkvyPpD1h4y9PTMnt9ryZXuW54xs/4nmm59VKsUdjThAXcBcinobZ/QTemkMgIPekwozYyTpCAO/J1EKWeeW6eG3cjGCO08ab7X/Tsowit67sG48l5Y6whj3hcrEPYnL0Yxn/e9p5opCHocq6HR9vYfMPEooUW+njFlYxK2phMLuXflwJnZtuRs21yemj1JQ5nF3KNM2a+VH02rz7HTmFkoMf21YMXFCWAcJT2VlZgQYnV05qTm4pYXOaA== 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)(86362001)(336012)(82310400003)(1076003)(7696005)(508600001)(2616005)(70586007)(426003)(5660300002)(70206006)(47076005)(55016002)(450100002)(6666004)(2906002)(6916009)(186003)(356005)(36906005)(83380400001)(36860700001)(107886003)(16526019)(4326008)(8936002)(6286002)(316002)(36756003)(8676002)(26005)(54906003)(7636003); DIR:OUT; SFP:1101; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2021 07:37:19.0679 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f187ad47-a3f4-4907-eea2-08d99d0a6f46 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: CO1NAM11FT024.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB2926 Subject: [dpdk-dev] [PATCH v2 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..519a645344 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,21 +779,32 @@ 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_LOG(INFO, EAL, "Selected IOVA mode '%s'\n", rte_eal_iova_mode() == RTE_IOVA_PA ? "PA" : "VA"); + rte_eal_get_configuration()->iova_mode = iova_mode; if (internal_conf->no_hugetlbfs == 0) { /* rte_config isn't initialized yet */ From patchwork Mon Nov 1 07:37:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Kozlyuk X-Patchwork-Id: 103299 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 C044DA0C52; Mon, 1 Nov 2021 08:37:26 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ADDBA410FE; Mon, 1 Nov 2021 08:37:25 +0100 (CET) Received: from AZHDRRW-EX01.nvidia.com (azhdrrw-ex01.nvidia.com [20.51.104.162]) by mails.dpdk.org (Postfix) with ESMTP id A9BB4410FD for ; Mon, 1 Nov 2021 08:37:24 +0100 (CET) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.106) 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; Mon, 1 Nov 2021 00:37:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mQycDqxQ8FALeAf/x9tYljUH9SE/zHi4m/5PNk9Z9jNrfCUJvN5yMk66eYOWo5ll9gTm5sj9Cnxkh+A2zGHNliPGDf5v+5DjS5PGWHcR/gMmV1M3Q+dYKfQDxGPNT3IESGJVkFvBhUbJXBpR4pHDOFgINBIRKaDuqjCLvNXBFxf1E2QJZ1NP+z8NWxBo8Y6SbzqI/PyPR+TGTolzR0BZyiMzy66v+54XBAU37pa4ALP8zgALXY+iHFh5EMKaAXdZFrWaADaogv0Eo1XfBiXRa0XRBlcg6cjYRE5hzHT8jl74/SAFhiOOq4fBvAMbwUEhNm1JTldiL/HUCXoANKd/3g== 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=UyKXX4aqJ0V9Qc/15ooMA66b1BLgcrZ5neiJX0pfHYSe3sfWjsu0QV/56ISr/EpdYB2KIe0T9PZoei0zYhCbqGfkencaS8Nj5zpP2/L8D/axYlUZnKhW4xRfRXnFHHQKdCPqDjUUvBLELHpVew5yRyh53InwBWuy+gkGZVlYA52DR1fNfn2WU53yXml72dLasZM40OOZ95OMKKqViuV7Oa25MVeJ6oFMJl2NVCgUdhj0KHJCOX7yaLCrNTKA1PKW+wB6xgbFQnNYbLwjqvpRjcbXgNvozSv75yA3p+We1TyQqxHvFY5UqS7VuTgeLluF6qlBL3/IUXW3zKqeLlN0SA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=6wind.com 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=DBXtWhzUHH7DcP/aQovzJsaJaipgjplM8P7R2r8aa1I=; b=dYfEjUMvQEnk+LRH/Ygv4U79omXRbzJJb10g0u3yfS7X0aQKvMYtdZsAhfv79dA/p85BfpU6rbdEXCD5OS6g6CgFJ3wMzOLHZ+ryn67wPLaUgxsAURjrLRIBx9qNmCT28k78H5tb7kmndfGNmIYj7wsREzctOodUfZiVSYynX0lhry6l8y4/wnEOSe6FKejcfULEP+3UlFQVr4JRlYL+zNnN6Iih3s7S94N8/xKqzFcdeCKRx9cqtKgaZv88+wSSTuq+4qGL/J2tBl016dtsu0lKpKGKN9j6SI+4reg2cOh1Cwxw2ICE/kcAMyMsp0s1H0y08ZuGoUTPY7YlRsbhew== Received: from MW4PR04CA0351.namprd04.prod.outlook.com (2603:10b6:303:8a::26) by BYAPR12MB4984.namprd12.prod.outlook.com (2603:10b6:a03:105::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.15; Mon, 1 Nov 2021 07:37:21 +0000 Received: from CO1NAM11FT024.eop-nam11.prod.protection.outlook.com (2603:10b6:303:8a:cafe::33) by MW4PR04CA0351.outlook.office365.com (2603:10b6:303:8a::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14 via Frontend Transport; Mon, 1 Nov 2021 07:37:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; 6wind.com; dkim=none (message not signed) header.d=none;6wind.com; 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 CO1NAM11FT024.mail.protection.outlook.com (10.13.174.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4649.14 via Frontend Transport; Mon, 1 Nov 2021 07:37:21 +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; Mon, 1 Nov 2021 07:37:18 +0000 From: Dmitry Kozlyuk To: CC: Yu Jiang , Olivier Matz , Andrew Rybchenko Date: Mon, 1 Nov 2021 09:37:00 +0200 Message-ID: <20211101073701.825389-3-dkozlyuk@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211101073701.825389-1-dkozlyuk@nvidia.com> References: <20211029084051.679233-1-dkozlyuk@nvidia.com> <20211101073701.825389-1-dkozlyuk@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL105.nvidia.com (172.20.187.12) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d0ab5dc-6087-4723-405b-08d99d0a707f X-MS-TrafficTypeDiagnostic: BYAPR12MB4984: 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: s+j1vwFNwSiBQbp6jT7e/nX+HqXICR2ne2PNPNiF0xxGzlZT82ur3GtCgFGHU9tSnk6NcjYg+x4Ga/SzTCfstOViB+qwTrVeG50vndw0DT7cTYwAY6SbNuMCSSX5nXdlDLJTQr4XovkIe7/qJI1WDWnzkJfRQ5FACikPQzu9N8Byg3FbuIt0kHZ4pbS2om/r8nAgPuO0oE/eX2N485ZjkCU5Y++HRSfCqLDbvZ8hUuiA4OQoJUTocsPUE7HUztHd9oS5DVb5cbOnnIHhymLho7xzC5qX8OIZBiOzPsoqoXDNBr9nfRtfUdXO9sADL29zcA2Jua1ouT7W7Xz0QuW7nJ+ZL8sEjAmR4G4uwbYg1tn3I/m2vh/D/LDTfQvUTTTDRgdVl+AmT6kA1Vro5SW/64NDds+IJ+Lj40RYfgGD7wUtoVEgpn3xhvX2mkhW7c2vB+wmqN8zFjejDQGmpAAmMZTfwx1eQQB38Etdhkwp6N3pHjSSBlvraVVpHIVG23E4icgHrsxDsZJ935fMkKcqm229AB8FmyFoyJKfCqNcl7gwAFfYXXyXeo6TJANLQOvfqjYaJwARSCII1TkfV0HpVC2rBEVElh9qYx/cMAolmnqieV2F7dAUirCl+5qmLT3DMSZWEMb1bpCYHXDTIH2MvQLm37aRbOXtawuUc9KdfHoUZXXIYKfl6vQGTc6StX4U8WVLJrwbfRQ0wubE+lQDVQ== 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)(8936002)(107886003)(186003)(7636003)(508600001)(16526019)(336012)(36906005)(426003)(55016002)(5660300002)(6916009)(2616005)(316002)(2906002)(70206006)(1076003)(86362001)(356005)(54906003)(4326008)(26005)(6666004)(70586007)(6286002)(8676002)(36756003)(82310400003)(83380400001)(7696005)(36860700001)(47076005); DIR:OUT; SFP:1101; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2021 07:37:21.1118 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7d0ab5dc-6087-4723-405b-08d99d0a707f 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: CO1NAM11FT024.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR12MB4984 Subject: [dpdk-dev] [PATCH v2 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 Mon Nov 1 07:37:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Kozlyuk X-Patchwork-Id: 103301 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 D3774A0C52; Mon, 1 Nov 2021 08:37:38 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BCB9541121; Mon, 1 Nov 2021 08:37:27 +0100 (CET) Received: from AZHDRRW-EX01.nvidia.com (azhdrrw-ex01.nvidia.com [20.51.104.162]) by mails.dpdk.org (Postfix) with ESMTP id F3693410FF for ; Mon, 1 Nov 2021 08:37:24 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.44) 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; Mon, 1 Nov 2021 00:37:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B2dDqOYsrp6pUyZhj+dRn3MXYQNjcPW8Y+wHDqJcUEG47jf8ogX/7tjnXL5RvoTrMcgticEmzm54wFZDqq+ZMDnKNb22XwdX5dSIcr9yHGmI4P9+BXiRM25P/es63jvTH7gxO0LFXSnW1O3EaOlThmfmU+QOnNFLJxejPovJjn98I9MAKv0fTOmI9SLjItw0YH1Vo84Tkyb8CRmcWoKkoBEiG520A0QZv05guT2s5q7/5lTRWb9ilRF82dX3O9U9d/xYRdpMX6e+kf93bxSN1VbQKU8gZg7C9mnwkpK3fQ8EM2IV64nRuFcfu3aOA46MNinU7GtZP/UGZB5h/AtdvQ== 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=NHDBC/4plHFGO6Q7K6MgjpvaPtv8AeMShYvPtD1q/nA+WBw8Gutywd32gBRgwHUjbXMur+VUmHBttgPNJOVKeN9UZ8VHELEA2WswLoRnakbzhuZ6M2Fxefs8VT/lGazxXo89Exr4FfGEfinpscZ+IDxIbH/tPuV4WOViVA/jVgqoQb/EICtNNHy4v+Xm4aum4cpw5MvvCz5ft6hecsDjfI9BWK4OrjGTT8Nm144Ua6bJyiVTRBJ7dmhpqnwhaSs+tORrENS2UAtl8dwAWCb0Q2s5XayLmEGgSRAiTvtADvY56jg4odRl9gxS2zoS8dOP5F3d9d8vyJ2a8f39oxEVxg== 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=eORINdd4ONrGFrgE6ZUrvBMIJwVIF1vzkOuXTdjX2gDJRZJqUN3jhUgMsyYieT1Xl4NtAmBERhN74KRvN7ucaUL/f/CAFBpHSFx4nNRaRqONZ+sM7gxANcK+HTnA80Hs+WgA76k5ZfssRFPGX+zCG0cl1FLKmdC8BKbr2/VN73XIsM+Z7oXVK7jR7aqUOfsMvn79kDbQ+ThrSpf7xd//9iaULPYjvH2O1QF72CzNiB3y5jklQJ/+Ra7KsdIer3g7wACfGTGa7+SBCAmtn1nHMyQnLdW2Xi9L4u0afMlzp3u2nzCRpnpuzHM5R3ao7rxei2zzu343bKr11VjylFMg9A== Received: from MW4PR04CA0348.namprd04.prod.outlook.com (2603:10b6:303:8a::23) by MWHPR1201MB0237.namprd12.prod.outlook.com (2603:10b6:301:56::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.19; Mon, 1 Nov 2021 07:37:22 +0000 Received: from CO1NAM11FT024.eop-nam11.prod.protection.outlook.com (2603:10b6:303:8a:cafe::46) by MW4PR04CA0348.outlook.office365.com (2603:10b6:303:8a::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13 via Frontend Transport; Mon, 1 Nov 2021 07:37:22 +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 CO1NAM11FT024.mail.protection.outlook.com (10.13.174.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4649.14 via Frontend Transport; Mon, 1 Nov 2021 07:37:21 +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; Mon, 1 Nov 2021 07:37:20 +0000 From: Dmitry Kozlyuk To: CC: Olivier Matz , Andrew Rybchenko Date: Mon, 1 Nov 2021 09:37:01 +0200 Message-ID: <20211101073701.825389-4-dkozlyuk@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211101073701.825389-1-dkozlyuk@nvidia.com> References: <20211029084051.679233-1-dkozlyuk@nvidia.com> <20211101073701.825389-1-dkozlyuk@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL105.nvidia.com (172.20.187.12) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 54b3f72a-6347-4598-5a85-08d99d0a70f6 X-MS-TrafficTypeDiagnostic: MWHPR1201MB0237: 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: LYNUYw1OEOPYQN8q2e8iCHHt8vhakyniiFMHU28+ZUfnvrx5DLdra97y1R3M/d0AZo/rcoHUYrlml7ubjAN6hI9eG90R8GRetcYK1qI9oeIDfkXldukZuPAdoZLzWb+WAOXFz2RvjxnLC6ywQQjXimNF26dAJjOj4N+fUZibusrQqRDESipSTTXjyTpJfW5Gd8o8F8wg1Hr47PJu7iMlreYeqfB2sCPGzS8BZUvXLKdTAKRlULuhuQzHtAAirsnf5c+ZSDjZlo9NjhDz4ZakwWoOrSqEpktuPuvzL8xbM5eRAgLBKvpgxycLOcE4PMRicWCa4g0YUM4yX2G2d8ZxrT7wEia8QxZspmcmFmf6v8M+Sb0Ukpl3Z6dYr4Dy/dAPNBN48HpS7T3E/wGzo1v5ek/BQ1C8L46+fcGCNAVu4+RzaHpBHcfWP4ZgEaMQrLiZI2qwWVbVVBinoj+KslcMAZZZWv9xmK4XjmCoGsbADllqFC3XNP/wzz8jx0U9mjQCMetSemyG5Kll2TxbSjEQLkLhBBuMgBJK9mJt+y0vqrLbGOTCo63CwNWlePX9l9+u/hV86mSQx2Q00lTcztXZ+itGF/vUhd8GUYjpYO9EiovIttQb0FtWiXVD/ZfooFSz2YoYETO20fmAmhC0uTPGb1VwI1o9AIQ505txejNea3RukkJeK7JbyOXGXbNTv+FbjGOEhhoWr3qMh+Kd8AYmvrmW6ieUtf9OW2dpev1W0Nk= 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)(70206006)(6666004)(186003)(426003)(6916009)(55016002)(316002)(16526019)(86362001)(36756003)(107886003)(36906005)(36860700001)(8676002)(7696005)(2906002)(8936002)(7636003)(4326008)(2616005)(54906003)(47076005)(83380400001)(336012)(356005)(5660300002)(26005)(82310400003)(1076003)(508600001)(6286002)(70586007)(14583001); DIR:OUT; SFP:1101; X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2021 07:37:21.8983 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 54b3f72a-6347-4598-5a85-08d99d0a70f6 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: CO1NAM11FT024.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1201MB0237 Subject: [dpdk-dev] [PATCH v2 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;