From patchwork Mon Sep 18 10:42:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 28839 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id ED4351B1AA; Mon, 18 Sep 2017 12:44:01 +0200 (CEST) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0059.outbound.protection.outlook.com [104.47.32.59]) by dpdk.org (Postfix) with ESMTP id 52CD61B19E for ; Mon, 18 Sep 2017 12:44:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=2oM5aFeKXRiUVupc4s8JKxIOwOF8fIvnB2t572HvqyY=; b=eRXex/SigoOT9E2LchpH1PgejonxOfg+3h3OXveXGf1/+qX1pNJa4Hobm7dOjRA4SuD5EqeeO3exlFypkNLeEQ35p6EwInQ1txbO0k0+BkBl77r8RPvO99UVAbyFJevj633x2boKVChljz6oyAoQPAWREvYqkhPqUQ9dScOICl0= Received: from localhost.localdomain (14.140.2.178) by DM5PR07MB3097.namprd07.prod.outlook.com (10.172.85.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.9; Mon, 18 Sep 2017 10:43:51 +0000 From: Santosh Shukla To: dev@dpdk.org Cc: olivier.matz@6wind.com, thomas@monjalon.net, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, aconole@redhat.com, stephen@networkplumber.org, anatoly.burakov@intel.com, gaetan.rivet@6wind.com, shreyansh.jain@nxp.com, bruce.richardson@intel.com, sergio.gonzalez.monroy@intel.com, maxime.coquelin@redhat.com, Santosh Shukla Date: Mon, 18 Sep 2017 16:12:31 +0530 Message-Id: <20170918104234.9149-7-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170918104234.9149-1-santosh.shukla@caviumnetworks.com> References: <20170831032618.7120-1-santosh.shukla@caviumnetworks.com> <20170918104234.9149-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: PN1PR01CA0093.INDPRD01.PROD.OUTLOOK.COM (10.174.144.161) To DM5PR07MB3097.namprd07.prod.outlook.com (10.172.85.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0578a7e6-9549-4e7f-7569-08d4fe822b0b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR07MB3097; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3097; 3:NHUUx0kMn2Hm1xyNAUltmD9YL4iaGXEha/SGK9KqBEV+AcDWesx6fiIVJWToJeXlvm0niq+1yrAEBQ912pQYl3ttXzIG6jSga4nvcRPrlRh3LevYt2t7OtcAMp8DqoUsl3/+75tsJV+qH4lubpQ7dQru42S+MucUmUMyX03VhIvWzXpxqCixdgzsP/Jk8rBNKGuNSO16aeOkBN7IeCu6o//HFY6b8vY+FtJld3UUOO3LunqaJTEZcygLrYdX3cIF; 25:WXMB8w2JIhGtrePVIYOTMMZCPatdb9mPZDCP+rVm0ZdxPI+qGu7tgPVN4bEgr0kqAVtjT+UST0CpD9HGbaCO7/fqLzMlx2tpl49GhbVe+OFNKt9NDhdKE4CiOUeCCq7IvkwJTWeTiOknSNKLZeuqIulO262DDWP+5n+lOMsoB8AiUzhz3G1z+ic6OyzO7Qz/wiOb++yu8oaTTxHUmTwLdPVmmI+I6Ff3Zbc9rXR+B7Y2BaiudMWTvq2dksnw/dm0KC2CxxjlyXyUz28ESwNniA3gdhML37/J2bHxzvSLMWTaLDisYhHagLP81HynEdbC8NWMyXr61IppAs0CjmyXqg==; 31:KnX5PhgKSUJKgAY5uO7IX6NPH5+ND1wXeSBGe7dYPZI9JAuTF2qJG3DcsNC+YLMtQzccKKBrMbfVgzmjBSfCyJAjzc/m3OU162LoIaukyZDetEpGp16MWSA7XP69lYkDBgpiyOpN1P/QQvZpou/xmgpEa1OwYec85c+jTZ9alPGfHhpTea1kXRr9dRRRhS0xgRuBEUTYxZ9Jt/ZGzdq0V+ee3A9fxDI+QEiSCl8CAFM= X-MS-TrafficTypeDiagnostic: DM5PR07MB3097: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3097; 20:p+K/CXSHpoXg/nSn4S3F4W+FhVQUom9+iaUajPIln0IXf12NdNL5m/FvlCVsTAYdDOS7jHF6fkQSrIrOAnXCAyWM671n9TNGGx/hia+O3OXPHiET/3KrIM/a7NjZ+ubiYHO3whpVzlmWYyZLClfO7hsV8NbPQ6D6Oow9cPgzhoW4qYsodYPv0eLRZ4y8sL8aggvmqLHWVcxtHp7fVAWrxlO0cZDZSM4GJgNiT60sqXtfRMBNtZA8TDI9WKVRoTfTlhAbPokBMcoluNksEwHl9u6mcswJYbnMT86frJAxTq4DdGwEEP9yP4A24ZocUuRnc3R/nwbito6anmr5ZUKcXo6Jnxv9CLhwTtB9NL08W+6y1mzzJQyeLadAlg50Yz1lHRBK4OOLAOjrZ8GwtrGMSJvBzvrqEH4IAOauymSygVlT/z4+soSO+UCDykzbch1ZGpxSGxAqdkYJdUS+x0nhNk53qphJSQNtkzZnvJOODWn1xpPg0Uaigu2o0VxQtTcuv/zMu8K9UGwykb8LiLFRGhT5CIEdyWPr8bD3totoDW2iUtA8HY5hquQlsKsWwS+jFpTiECbwKo09N3iiSYSSQm3xdazfFO88D/XK9pu5G5s=; 4:Z1ucz3AFStlBXjLAq6M9tCRXOAtBLs6DIAKMaPSuXipVlrlQaVurFVhHlDxyr8IjHN/jX8FzcVPtTyC9vF4DLAOz8y+5qMCzoncJoEJLeAcTU3UL0CkMtuVS3JZosYP0LUq8xGVuEaR5GZivA7WzkZvgf5OARrpZq9Uiqk22y0OG6+TJDlisu9/2phIc7GTJ4H8qYWaipEAqxdmofHGVBleDPJx5/oIGwTVlrmRfd/KLZzcbEHLOuv/CFfQbCXiJvhvFbnWLZAzbqXuv6caRQiatdPSTsKYPj+PegtyXVH4= X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(93006095)(10201501046)(100000703101)(100105400095)(6041248)(20161123560025)(20161123558100)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR07MB3097; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR07MB3097; X-Forefront-PRVS: 04347F8039 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(6069001)(6009001)(346002)(376002)(199003)(189002)(6486002)(76176999)(6506006)(48376002)(50466002)(25786009)(5003940100001)(107886003)(110136004)(53936002)(4326008)(101416001)(97736004)(6512007)(16586007)(106356001)(105586002)(2351001)(47776003)(305945005)(189998001)(33646002)(478600001)(5660300001)(2361001)(42882006)(6916009)(6666003)(2950100002)(7416002)(36756003)(66066001)(2906002)(7736002)(81156014)(68736007)(50986999)(8656003)(81166006)(50226002)(316002)(8676002)(3846002)(5009440100003)(8936002)(16526017)(6116002)(1076002)(72206003)(110426004)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3097; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR07MB3097; 23:FTbMnDrwAlkDVd3BWzs8WOvJzoh8xz71BLJknBSlv?= 92w494EWVFWqKNBdDGySh6VE6eBgu5Ut4OSDC/6FT1VAHSGpAZYPj+W/UWEcyOmthNCpoTR5gZx0DmdWvmznmSn4BFofP6Aa4wbnR8pZimfXu1XK078yEnaqqz5I2tOrtSdBOXtlGzZkK5uL5ASMiLLDMWMvlTefPX3mVl9zvANeVUk21I4DfELWeZKnojUO5LqQrCre5jtVEgZyC8MKNu/6q1E/maQIIIJU2tOmzRL5AhfZ+bzTZ0h0XxUcmRDLL2w7crrPxoHsP1sjzdV/je3PjS8r/oRtL4pURxDAQbUm8q3pE5LVq3xswdW6GZYchnOangXNVUHwQGx5eQPxreoP2ldeZ959U9EV0Dgj1LPr9y8n5BuNtywcJM95G6Qta5T+VtsTndKlEwrCNTs1PZQ+kmF25u971WqcbCC7X/i6bbQIDtBEoNy5e0/IeBEtGu0/jx9R9XgUf5FqYn72Fum5w+4Ml9swAooqdpqteaui2vvya1aQvbmFQ21QwrNnfzalznhUVdh1qKJJUFZ27F35G/fiZoFJtLp/Kb1KK1EiwVWnTA3+bBNOSU05Wo4hICFaUlLNlcoWvcFyt7eVaxlSYvR8NsIIb8W8KDPyK6kXLx6sw6CPwNOVIn7bP+Pq9yKSfqpqrH/lqezWnbUvBEj7ViKDoAH/O2idyoSxTwPq+7IULLodoizDZtZP9ucC1BI9s8KotkcQYVY33JktnCGyAXuO31rkvUWuMWqFcqlw80dn67uoVJKNlcKtG/NlfcM2cX1h4ULThe9vyo9bZ3YGncBTbNjyGYfhvUJBOf350cO60FfmJnfU7X05smf69oCuTQ2HPK6uIk2pLbj9D9LhbKSq9QAeqymDL2YtncvtIAIU/BlG0vgnBddvohW1WSkYnzEiU6Iir0TqX1QdHGKVcxzC447iK7NEC+jmq0WvDn4XJtsgOJluZdfEjN2hCfHusvi8fyv0B0kDtjL6se+/rj+cLd9ZCJfDeQxUJIg0KGIgCSmGaAmedUY6R/ZgfslMV9SjbxFXpoEw3CKAQUjKym9ykodQ2NOC2ZRi4Px9dy9iSSba5/gw3lXQq1GBUNKAPHcXLAeUsWd3KkdnUoa7qvVAfKvPt+rLFcmesDA9AMRDfGkgYa6uxidfJWcZK6ExA6RZZohpVCe3CEGhBGpM11waSoCB6Usl0F+FWg8rDmg/1y5M7zKbZdhnd+gj/lGupI15uk1OPVL8diYijHI3o7KB9KR5rt46m+AAATOQ5umWrfyB3BAkIhJSV9C7N6n99vVx95bv7tkFNHJe/VhX6ppzvyr1mEfAv3RwTAuXOiEm3XbSIv5bJyFvePFaHRet6Bvwgi+3qClzm6iUnES X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3097; 6:m+CpgZeYCNmC/KrM63kS9HhzZtCMy5VY18XXeTr5N6NFBSIKiC70UornpTrpiaiTXIPWKolB5t+5v+xB5VCUfaA9o67M0f4B+j86n8bf/iyIqg9hF3Uv8XiV9/wMm/FS0v6HoonEa2TgXEqW4kX6YSovn+qAqtTLFAcLM3mBjdh3RF2YswfXfC6hXoqi5Tq+aiaT90HCZ+z1M78KmhD36l41c3rwa4zJFJKt83ETGV7VZBPrhkDz107arZgIq68pD89iiDriizUDNmy+fWByTKQSk53iQyAg3PkALU68DYA/aRVYG99WanyEpTBKiJ+vCAiXezyr/ztZERAG3b+YDg==; 5:oDj/aOiuzKSwJrhWLXPMqzTuierCTAp3cfuSAV4k1G8Xz5mpFQgv30rXc6WYbfVlkrr7/Ujlcm4j1DFi3JcLWaOdOrui5iPhIMGjYxdGGu7o1czvn8nAgtYZV8t0/sktEEnp+X4naBtPXQx9Slp4Wg==; 24:hImDI0NjEAlWl3zpSBMIWyhP8XM1TfsZa7WAdaYFmxkB3yXF9CFhOziTZfddjP+lI3o+sAkHafPP5YWBWVmAQ3xQ9GXvhJyHc7/EOoMTzi8=; 7:DVQOpCgahVhod8G3o0Aap0A7D1Os86NDErCveRbkGNc9T2TejPSXzCIjzzVL9LrENgMYzI+ql2n93X47wCnKbKqYiRhINhJR070pyIpnQUE3FjxbiInrC2XaAkaFM2KuaHa/S+W7hsFaR+IFskR3gWbht6VX6UUwZXMAR5rEyitlfqn5cTyMMW/sGYGVSPP5c+6VzuKRGU6Dog3SUyxq+GbWM5lo5NN5XT8lKW7HP68= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2017 10:43:51.6988 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3097 Subject: [dpdk-dev] [PATCH v8 6/9] eal: auto detect iova mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" For auto detection purpose: * Below calls moved up in the eal initialization order: - eal_option_device_parse - rte_bus_scan Based on the result of rte_bus_scan_iommu_class - select iova mapping mode. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob Reviewed-by: Maxime Coquelin Reviewed-by: Anatoly Burakov --- v6 --> v7: - Moved eal_option_device_parse() up in then order of eal init. - Added run_once. (aaron suggestion). - squashed v6 series patch no. [08/12] & [09/12] into one patch (Aaron comment) lib/librte_eal/bsdapp/eal/eal.c | 27 ++++++++++++++++----------- lib/librte_eal/linuxapp/eal/eal.c | 27 ++++++++++++++++----------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index 07e72203f..f003f4c04 100644 --- a/lib/librte_eal/bsdapp/eal/eal.c +++ b/lib/librte_eal/bsdapp/eal/eal.c @@ -541,6 +541,22 @@ rte_eal_init(int argc, char **argv) return -1; } + if (eal_option_device_parse()) { + rte_errno = ENODEV; + rte_atomic32_clear(&run_once); + return -1; + } + + if (rte_bus_scan()) { + rte_eal_init_alert("Cannot scan the buses for devices\n"); + rte_errno = ENODEV; + rte_atomic32_clear(&run_once); + return -1; + } + + /* autodetect the iova mapping mode (default is iova_pa) */ + rte_eal_get_configuration()->iova_mode = rte_bus_get_iommu_class(); + if (internal_config.no_hugetlbfs == 0 && internal_config.process_type != RTE_PROC_SECONDARY && eal_hugepage_info_init() < 0) { @@ -620,17 +636,6 @@ rte_eal_init(int argc, char **argv) rte_config.master_lcore, thread_id, cpuset, ret == 0 ? "" : "..."); - if (eal_option_device_parse()) { - rte_errno = ENODEV; - return -1; - } - - if (rte_bus_scan()) { - rte_eal_init_alert("Cannot scan the buses for devices\n"); - rte_errno = ENODEV; - return -1; - } - RTE_LCORE_FOREACH_SLAVE(i) { /* diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index febbafdb3..f4901ffb6 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -798,6 +798,22 @@ rte_eal_init(int argc, char **argv) return -1; } + if (eal_option_device_parse()) { + rte_errno = ENODEV; + rte_atomic32_clear(&run_once); + return -1; + } + + if (rte_bus_scan()) { + rte_eal_init_alert("Cannot scan the buses for devices\n"); + rte_errno = ENODEV; + rte_atomic32_clear(&run_once); + return -1; + } + + /* autodetect the iova mapping mode (default is iova_pa) */ + rte_eal_get_configuration()->iova_mode = rte_bus_get_iommu_class(); + if (internal_config.no_hugetlbfs == 0 && internal_config.process_type != RTE_PROC_SECONDARY && internal_config.xen_dom0_support == 0 && @@ -895,17 +911,6 @@ rte_eal_init(int argc, char **argv) return -1; } - if (eal_option_device_parse()) { - rte_errno = ENODEV; - return -1; - } - - if (rte_bus_scan()) { - rte_eal_init_alert("Cannot scan the buses for devices\n"); - rte_errno = ENODEV; - return -1; - } - RTE_LCORE_FOREACH_SLAVE(i) { /*