From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Santosh.Shukla@cavium.com>
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 <dev@dpdk.org>; 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 <santosh.shukla@caviumnetworks.com>
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 <santosh.shukla@caviumnetworks.com>
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
Content-Type: text/plain
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: <DM5PR07MB3097B291FEAEEE078D537CB7EA630@DM5PR07MB3097.namprd07.prod.outlook.com>
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?=
 =?us-ascii?Q?92w494EWVFWqKNBdDGySh6VE6eBgu5Ut4OSDC/6FT1VAHSGpAZYPj+W/UWEc?=
 =?us-ascii?Q?yOmthNCpoTR5gZx0DmdWvmznmSn4BFofP6Aa4wbnR8pZimfXu1XK078yEnaq?=
 =?us-ascii?Q?qz5I2tOrtSdBOXtlGzZkK5uL5ASMiLLDMWMvlTefPX3mVl9zvANeVUk21I4D?=
 =?us-ascii?Q?fELWeZKnojUO5LqQrCre5jtVEgZyC8MKNu/6q1E/maQIIIJU2tOmzRL5AhfZ?=
 =?us-ascii?Q?+bzTZ0h0XxUcmRDLL2w7crrPxoHsP1sjzdV/je3PjS8r/oRtL4pURxDAQbUm?=
 =?us-ascii?Q?8q3pE5LVq3xswdW6GZYchnOangXNVUHwQGx5eQPxreoP2ldeZ959U9EV0Dgj?=
 =?us-ascii?Q?1LPr9y8n5BuNtywcJM95G6Qta5T+VtsTndKlEwrCNTs1PZQ+kmF25u971Wqc?=
 =?us-ascii?Q?bCC7X/i6bbQIDtBEoNy5e0/IeBEtGu0/jx9R9XgUf5FqYn72Fum5w+4Ml9sw?=
 =?us-ascii?Q?Aooqdpqteaui2vvya1aQvbmFQ21QwrNnfzalznhUVdh1qKJJUFZ27F35G/fi?=
 =?us-ascii?Q?ZoFJtLp/Kb1KK1EiwVWnTA3+bBNOSU05Wo4hICFaUlLNlcoWvcFyt7eVaxlS?=
 =?us-ascii?Q?YvR8NsIIb8W8KDPyK6kXLx6sw6CPwNOVIn7bP+Pq9yKSfqpqrH/lqezWnbUv?=
 =?us-ascii?Q?BEj7ViKDoAH/O2idyoSxTwPq+7IULLodoizDZtZP9ucC1BI9s8KotkcQYVY3?=
 =?us-ascii?Q?3JktnCGyAXuO31rkvUWuMWqFcqlw80dn67uoVJKNlcKtG/NlfcM2cX1h4ULT?=
 =?us-ascii?Q?he9vyo9bZ3YGncBTbNjyGYfhvUJBOf350cO60FfmJnfU7X05smf69oCuTQ2H?=
 =?us-ascii?Q?PK6uIk2pLbj9D9LhbKSq9QAeqymDL2YtncvtIAIU/BlG0vgnBddvohW1WSkY?=
 =?us-ascii?Q?nzEiU6Iir0TqX1QdHGKVcxzC447iK7NEC+jmq0WvDn4XJtsgOJluZdfEjN2h?=
 =?us-ascii?Q?CfHusvi8fyv0B0kDtjL6se+/rj+cLd9ZCJfDeQxUJIg0KGIgCSmGaAmedUY6?=
 =?us-ascii?Q?R/ZgfslMV9SjbxFXpoEw3CKAQUjKym9ykodQ2NOC2ZRi4Px9dy9iSSba5/gw?=
 =?us-ascii?Q?3lXQq1GBUNKAPHcXLAeUsWd3KkdnUoa7qvVAfKvPt+rLFcmesDA9AMRDfGkg?=
 =?us-ascii?Q?Ya6uxidfJWcZK6ExA6RZZohpVCe3CEGhBGpM11waSoCB6Usl0F+FWg8rDmg/?=
 =?us-ascii?Q?1y5M7zKbZdhnd+gj/lGupI15uk1OPVL8diYijHI3o7KB9KR5rt46m+AAATOQ?=
 =?us-ascii?Q?5umWrfyB3BAkIhJSV9C7N6n99vVx95bv7tkFNHJe/VhX6ppzvyr1mEfAv3Rw?=
 =?us-ascii?Q?TAuXOiEm3XbSIv5bJyFvePFaHRet6Bvwgi+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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Sep 2017 10:44:00 -0000

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 <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
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) {
 
 		/*
-- 
2.14.1