From patchwork Fri Oct 6 11:03:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 29802 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 3811B1B2CB; Fri, 6 Oct 2017 13:04:52 +0200 (CEST) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0072.outbound.protection.outlook.com [104.47.38.72]) by dpdk.org (Postfix) with ESMTP id 018731B2D9 for ; Fri, 6 Oct 2017 13:04:49 +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=gmh+lwTaJcYtBJz2zbuMKvMW8tekOR+a4HOoUguWhlY=; b=Amc51sz+kmRcvj5960KXlh4Yd4Ik+Y26XnDkTk2bk1SfoyD7xuguvUjFFmy5efKbUeUZT9tcqBienl3WO0CEMlHd/sYI0tfnejgLJwDFBGgSKNbPUZUPSuy0CqzzrzGzbmA5USAvSkqOPbREo8fkEgbq/hjjPCpUGT6JQJFWnrk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; Received: from localhost.localdomain (111.93.218.67) by CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Fri, 6 Oct 2017 11:04:43 +0000 From: Santosh Shukla To: olivier.matz@6wind.com, dev@dpdk.org Cc: 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: Fri, 6 Oct 2017 16:33:43 +0530 Message-Id: <20171006110346.13247-7-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171006110346.13247-1-santosh.shukla@caviumnetworks.com> References: <20170920112356.17629-1-santosh.shukla@caviumnetworks.com> <20171006110346.13247-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: CY4PR1201CA0022.namprd12.prod.outlook.com (10.172.75.32) To CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4aad86c7-4333-485f-7a30-08d50caa0f16 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:CY4PR07MB3094; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 3:IJy3pkU5jAeyeYZD2ujdJyHC/cN9PJexF6OayuBZbP14o6ooaU1Yf6qG3XqBH3xo9g0I1bfo2sUbC4+xwp2E6bmHSs2nP+WQPhTZvLrK57a6d+orykDNMKDOQvUb+BuF7c/c56yLHyMJMGnhyvzxpOiH6Q9K21NTD8k4/rWpATIx93GFDFzMBn6k3NhbqgVFd2sh8CjBZ7sdwPMxzgPhYhW3C59MhrX+ktW0Wn74rhOxFxZ0yPthAoWIeETwYWtA; 25:tunao35PFFXe/NvKj6S4S0gEf6m4fvjxOGXi/rGqOX/zmh9AZpIyugVl7zqjTgQFy27wCn2wMLGq24wvvfXMGSEx/NexRurZevqee+0ctfVQXoQPWOgxkoItpovdPoRF0qtzAtzlnZUf10O8P5/8ULShUWvX/NNn8WYcPqkV36z1/JkTQClEM/rBhcxnJ4RN9LyYMJN8aQTXeh/RrO9rXPcW/HOrIz/a12L7N1cvNtvey28/KIdjjn48Umt85OpYmHFasFKrNi3HqqRmzzuXP58yCQdceRFZNuscgnguxgDkRRWv8D0GyuZDabr/KtGL7UbWDxQaDNVb9UVyZYo67A==; 31:vVokk4t1dnlHgCpBs3LWHTSwe77M4dktfce4wDWMDPO5v5usN869grILsxAHnKHwmgfnzga8G6JCXBpGiS6RFYe4R97HbG98pk9Qvth2TjFU/fn93YTtXH/B7V62eY2qKGwzHg4LH9BfIHmOSNqsazb+ijRad1BxXRRAWUhRrBmZAvfoVYnhAFKFJo2Atl7EyRu0cfc6bhENkHhMHCaUdE0KkJ/gLAJQFziOicht0f4= X-MS-TrafficTypeDiagnostic: CY4PR07MB3094: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 20:fK3nqGb4ymhI5OeZQOfdgHJdnCAylbmE3L5WLbeHbSXiLWO8oHO+mA7gnkr+l4aL4lFHePIf0FWbWjsILBzvYSXzjGQZkJgHw/zeJ6jdR1Ic0d0Hl9mTsEpsYoqKwBdES8vrpon5HI2mRiJxmIqB4yPr7k8ol0PDzX31QJ6OU/T67457orlK4Mn2YnkTZbBuzZvgTXc2O+wz3OjuvdKTHFM/RYb+ass/9q/3GR6JrpKpZB0qNwTgd09bt2AQyrojRLs+NYeLSJ3PCZsM+F2jiF1kaZVWKO02lTB/c2GuCv4sHoaJbNBNhpJArNF7vwslttUc96KfOAg4V8OhZqCzD/IzjOOTnUVSpexQx29UuNmM9DeQbFZ+XKI4Ct310zfG+qvJcnHDceGj+1mOmVg4wRsRQYzqd5vd4M/gZ3oHgqcat7DU40GSnIE9fuTNm0K27iNGQ0ZzT4K+xHTnIiF5Y6gydKepTSrwN8GS3Ef/jXZZE0ymszk42C/uzz726aoq9om21KxaHeM3jehthTihExvDMMRAhj5HyRjg2sb0ix+0PrhoTw2hbxqIJpaZsibghIPHQZd/PQqiWzt2b9vdYkqMVLkVkqQiKYIGzulg6uI= X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(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)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(6041248)(20161123555025)(20161123564025)(20161123560025)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3094; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3094; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 4:hWgIh//Ab/cCpc5330TRkLkptStZY9W0FE1t6t3GwHHM3o4yFtzogmIXVWXcRaFaV5gBLu5T0AOmeTqV6Bjxz/vVpsJCp/gVsuUOUpw9C3sTIk2NNlnOEVTBSkJLQphZPKofJzSzXD9UXyLvvdvqaCaR+RxkhfNjzu9KHUv97bpDUuwSVy14SGqkR8rk7v0pkOc6UiJFYBNH8j/YH4Cb+IKoeaqh/mGZCZ1Xni3qssQFyhwc80nzeXy91lItQaSDDk7PtWwRBApURkjImw2DXnvevzCToWOKyOQqsTw5bvQ4ddw9MGaupBNFkgGI55tzIvoRh18okqGqF3QSi+qYLQ== X-Forefront-PRVS: 0452022BE1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(6069001)(346002)(376002)(189002)(199003)(97736004)(2950100002)(5660300001)(7416002)(105586002)(6512007)(53936002)(106356001)(478600001)(50226002)(189998001)(8936002)(25786009)(81166006)(81156014)(8676002)(107886003)(2906002)(5003940100001)(6486002)(76176999)(305945005)(8656003)(50466002)(36756003)(4326008)(1076002)(68736007)(48376002)(7736002)(72206003)(3846002)(6506006)(316002)(33646002)(16526018)(5009440100003)(101416001)(66066001)(6116002)(47776003)(16586007)(50986999)(42882006); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3094; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A: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; CY4PR07MB3094; 23:k/iDccQbg1o9zEVbRGJlQhxM0q2hlz3eDe+S55HB+?= 6pvkrqjBecCTn4bIT5VQSVITq3NOAALTwbjUOkbS7SqAGQFiBgHQ7E+2KkTyfFu2jjNMazC9jJ1Lncp4MMtvMFmWjvOFF6jHs8DCJPe5+n/xTi8RRG5sWoeNAv8W9WMH2wEeb7FGHkKJIyxB+flKhd/oCrOnB/sgKSLSeWmrqenJt4TnUYaKbKnenU6RO7BaxY9UG4pMD7O5NyXhJmuV6gUjJARaqCflrcccMGm+0vLMIAG2c8BDJDbsEzN3YbSZwiqLLeLSJy53NfRRC6DGowCDQukXyeYEtY1omq9H7w0QCrTrNHftOTdeIGLoSxoh79gksX2JnjXSQYYxrdzzFXRLD1oALnba8OBFHyug4ooyZZY8/OlaxzTiuLzNIQ7Idz2GbPqSbGSJ3Jauy1pByKD1/TcLCxtPBjHuREb2eKqGonUXUDfoJY1wbcMkN5Nj+Jfm7BWITzQt4CAo4LkVi97/65ZjjC0BD5JVw5dml/sjti9YeiW8Bxzbl9HagQ3ngVrJDNNNYmVfAdEKN7o7llDA9ZBKjXYJg99ZIrliVgYv6WvrQFLP8fpIUw+94NmlkBeFualGE0QZL0+U/Gnsxx5twEgwkWBAa9j97PS4rzvgY149l4e1KXZlSqcjENU/lWBefA/ECudBPsOiUd4vuv0pMcImXx3b+L+Gf7Pj7cRi4Inp+yZ0G8V3d4/DMFlxTUj416H7emM4xjqyZ1QvBkrOq4jAd564AYYSAXIcT43WqFCbc8Vk0OuJGBugPizlHRNhnuE47yOyyCdpJ5ggBn4Ij+v2JRCq6dFyziuqE2FAlFhitqowYMnqnSdTI/lFsecX2XYYvoZH6mlFX5mI04Hvig12WCs3z6L4SgkWi0lUNGEF566ZXNGrWN3RGQm3vNNUX7JRDiFx0/N9YQctg99gcyNRKXwjsyi5eB5S6DBqs6CFTipj0e12kvVNrq4tsQU9Uy2itS6x86jykd27Kp+EI87SfnYVIx4Up0/XqnN+WuJg9WICmWPg/3Uj1u0wHTbmXeQDSSKgwOIpNs1G7esXlswpvkW40IijcKw/lF+5OJi9vqBwIZxTB4+P5TSV9bfHVukzrASuuCC+NN83l4R7d0iz9vhj+zfPFW//krPBrmTHcEjDuEc5uvfZoHn8ug= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 6:tkwOewfd7Cnc87wJiXQHdnfxbjW/tn6ktYfiAMrDo+pcxNQY7Klph4boF3beE2QqULrUMylx3uLPox+DSqZMbYbobFo/r7KYxGBswjSSZQELeBvQ/rYIraDSC67fcV01YO9yVFIEcTyFowmK2qEtEqrcqKyUVqPKpOKWNm+HkZZ9D3KovWaeEQBOEkVyQWl8ZxmxDFI1i7uotzvDFURw0u/QZH5AkeeW50BDkujHBQA7gPy+NkmI/ra54N1G4tcCVtLzhMuUCpPneqox2TPanL0eVTX5YJmOCpDu1oYwW8bUqL5prZ/7ewnMaWEEYRSbCRHSTJz6CnFFYPsvHKSbQQ==; 5:uzG5x6ON9KEaRdgBQrYi+llqPG6RKh0YcaOKLMzBTEqSkPMHshuPZGJj73+BcI6Rsq9nScBceGyDRDqQ0WT8WfBMnHB47HRRyB55mfv+Ah27AdIoBlps8HG56RV7c287KHujYzcylYWZGuaMWYkQkw==; 24:rGT6HwxnQKo/znmmfRRIp+Ph20lz4ESJldH40m4/KlBCNthKJY+iOnrhO+MXptZwYF+fH0Bu5Bb5er+QYSr55PtyqhRkARHgpmWL31hDJwI=; 7:FenQaWw/PLfOIRB9Wyu1HO4qYCYDFBtDy0BTrjSxedxKIhK+9AW4vPqMzMSOVPTD3gh9AJycSW6hsSUcp7AotyRVonuvmqwVTaEqPm7kICtpjdhMV5AUbVoCjXpCcA+U3sxT4FVA6WGateNZ4WxHpqPXMUTmMSMHLitm5t16WRfxCBIRPll5YWmQDWIKDvwT34TPLpXimmKz83EBjbcFK7inIF7fMx9C1vaTatPX+1E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Oct 2017 11:04:43.1148 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3094 Subject: [dpdk-dev] [PATCH v10 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" iova autodetection depends on rte_bus_scan result. Result of bus scan will have updated device_list and each device in that list has its '.kdev' state updated. That kdrv state used to detect iova mapping mode for that device. _device_parse() has dependency on rt_bus_scan so, Below calls moved up in the eal initialization order: - eal_option_device_parse - rte_bus_scan And 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 Tested-by: Hemant Agrawal --- 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) { /*