From patchwork Thu Aug 31 03:26:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 28102 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 619203255; Thu, 31 Aug 2017 05:27:10 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0049.outbound.protection.outlook.com [104.47.36.49]) by dpdk.org (Postfix) with ESMTP id 1D06E2C00 for ; Thu, 31 Aug 2017 05:27:07 +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=vWiMvD1NUzFxE8SHkDvxUN3Z1vJPWlaBEpT7UvZWIlY=; b=c0lqe4uXuVRgse1svyn9jxFBzHXoByLAUTgWRTSOeijRKEZXyx3g4R/37uYQ+Hh2Rqbk3n6AXcoCIJ/EEFg5MJGi99FUtEYCEc6zq8oow2M54v4QHHDhfUAq9L0OO6NnzXaPL8tpeI2HlxJc9U+T33BgLubrmaDee/saeu6E+ZM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; Received: from localhost.localdomain (111.93.218.67) by BN6PR07MB3089.namprd07.prod.outlook.com (10.172.105.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9; Thu, 31 Aug 2017 03:27:02 +0000 From: Santosh Shukla To: dev@dpdk.org Cc: thomas@monjalon.net, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, olivier.matz@6wind.com, maxime.coquelin@redhat.com, sergio.gonzalez.monroy@intel.com, bruce.richardson@intel.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com, anatoly.burakov@intel.com, stephen@networkplumber.org, aconole@redhat.com, Santosh Shukla Date: Thu, 31 Aug 2017 03:26:11 +0000 Message-Id: <20170831032618.7120-3-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170831032618.7120-1-santosh.shukla@caviumnetworks.com> References: <20170814161059.6684-1-santosh.shukla@caviumnetworks.com> <20170831032618.7120-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0118.INDPRD01.PROD.OUTLOOK.COM (10.174.144.34) To BN6PR07MB3089.namprd07.prod.outlook.com (10.172.105.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9b46c25e-fd6b-4094-8d94-08d4f02027bb 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:BN6PR07MB3089; X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3089; 3:dNgksmM6PgqEZX02lq/JmVenih48Fk9iUasbwdcCJLAfazVJP8im/jPGa0ijFeDCPPKN2tY7l0Vk7hIuv8m3OzXx4wpRCaIaRdSr6SecU112VoXRB1sfjFEA+tbPuOIvQZLmKBfE2UEpxfb3wyphZdVERrAKbMWeaZUMFeShX2yrXHBb+DhikjjemrdFggB+XhAvd7q3rrm1gJ1xdsDHFbFMcd30fX2Nu/2dvpZ9Edgn1gi3mr80pzzmjFEnUbBo; 25:UQV2atTdBBEMC5nAj9NT/6mQ/IxQJPoOV3kDUtoVgGCFL8x8QwG7D2laAPoMTwNVfhsy+DVzSGowJPoxZsgDUYBf4tjYSp6Mhg3bJUT0Sqc2uyjPyLQX9fy1GcD3Z3zh9S2DxHgTXNX68USXCC0+csNeFWPU6MdxIjMhYCjUaZRlZYpwLFR8Mavll6c5WfaWcZAyZbRPMHxuzl2bd6S5viG94sSmvyG2kjVXxSWMkRfC9PfztWF4zF8+RyDOumCY/iGAsCTkldN5PJMjgmXNmbApaZvbJNJEBrEBf7Qhg0UUrY2UT3EMMbvpCnLQ5gh1yPvMKzAurWwZlUPTZPGL+g==; 31:JK9lwnY0mIIm3nYuHzsOPCrj/RNij0uWJafuKdz6ni8eHDLtpvN8KplbR0Xiy4bKG9WR8izmk7WfkzftXwyx0driaNqrfJC5n8Mi8OeaWElGCgcH0v53rKSRvK3YtBrXB0Zx8fFJ3BNo0xTc0reuFdF8/Hfdn6efvMD+xFA5kRcAoX1+/6B4ha6ePx5lO2XYepezkfAwHnFISloqOVqqZrTTvftTZJAD54rHi5gGtwY= X-MS-TrafficTypeDiagnostic: BN6PR07MB3089: X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3089; 20:HBrFUIM8/pASLw7pRRWKhiu9Ob1Iu4ZphvFyiPLv3QirRUmroJDamsjHGJi/Ke97t+XwsqT7OisP6TTnEkwBhwjfmgx0gCxnAmxWmbJAsaL7yIkMS62sUoYQhXmgdRehHPT7pr8Pxj9i3zKtogDRk4ZSlhAKL7oxVjI2p00uhcYclI4kRQ7rf9NIusxYfHvsr0BxswMoearxf6ML8pxhyRXfmu6RF5k+hGg/26GSJtIpJIbaPl1uRTBImv7gKedLG2FLBn0vYWTQvXE2EavgAufLgtfuUFo9FL/COS5wAj8zXXihPZuD+3/Mhn08JuvK8+ItJynjUpzmh6ITkCs9NaDzgnURL+qvi5KTRyusEkSKpBUWFjPM6YaPhv7BCtKPNOf9ny1d/EJ/7SaH+NALgISAsvRGCUQvEuVqwHxR7gLZLWVonI6UQb0xYjUl0CJHSe/6HCJURknbMN5g8TfY08c60CiqPft9p3qKEAToU3/is8yA5XoWgQrrWp8lYINVQonK6shszl1JyDrETq/rqSd4tyviuYix2HIEQ8v/nPOnqH0xv4wwXM1DRIhh6zAtUIsMEJ4YlgRwUORuOKdmR+jBYa9tFlb8mH9PL3EHFJ8=; 4:qAUDAJS2vLX5GlgkELaaF4+2Hg/MvzrnbjmG6VoVj6/mxoHukQoFPDM+4JxRxENKlu3Bgx6iNuxyie6oOtCjUAz9o9erxhhAX9wknQXXKnzFfOtjmucaNarPxu6hnGVHASt+saNZFUwsLrNVL+KIpDSoul2EBreKkBoy7W7iOiSkk/QPWZvSumN5mn1MkY2ma8vcU6dQsC2GyZKMat+Yp5S3F8YTFqhP4you/dCWQ2d1bPCtQdGWpJSeuFDKDVSa X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR07MB3089; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR07MB3089; X-Forefront-PRVS: 04163EF38A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(6009001)(199003)(189002)(81156014)(8936002)(81166006)(8676002)(7736002)(6666003)(5003940100001)(305945005)(2950100002)(7416002)(2906002)(6916009)(42882006)(76176999)(50986999)(101416001)(50226002)(5660300001)(6486002)(6506006)(48376002)(50466002)(72206003)(5890100001)(36756003)(97736004)(478600001)(189998001)(42186005)(2361001)(2351001)(33646002)(106356001)(105586002)(110136004)(107886003)(5009440100003)(8656003)(6512007)(53936002)(4326008)(68736007)(1076002)(6116002)(3846002)(66066001)(47776003)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB3089; 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; BN6PR07MB3089; 23:MnBgdiQpiA/U7afRbqs8I3A9oIKdlLw65valyqb5j?= KpdQSlMTGlHf4FBKc5zhGCNXsaLBZxaYkLXyPFXTAuFg/CMHZzbgK0dVVrjQi0Nr6NNBoAaYosCm6uLslkqn6QIGwBC17Kh7VBBOpy2QCwUTIa62NQ4Oh8f+i5i8YCcgyEXJe4VYNa+KbZHxkPMpoTFRVmxEzPCjtrnJ1S5GVYEAWua+sI30xfNOOsQtRbecEFSDE76O7TU1UX9BEoI+d13HxGcu53K2xym/ryk47qFJQePSd3W+FA947ZmmV2tCAXOWDxnPQTQVN0ilaiJ++ckxtK5xhHdU5sfbSA4TNm4YazGOGiZohtpJljXPJpq5k75nZjA4VUEFty/+PPKOUJbvXJDGGeKZRYhnA8/dBUV7oWfMJQo0gXKZ7fFhKyVem2rkSvTHny3Yu4CEzfAW0BeIGKrtvnKbSgpAGFrKwCZwqFhBYAnh7nAAA8TEcq5rc/CCe7m0JaAQvo5BUpaBGybAer9OwxRs3RwSO5dH3HPRQTUbft5WgROlISbFhWZSOIudiXMwMaWNtY+jQ3iTgyj3IyMY9EPKpjK3JJyGQyZvpcNPmrXJuLuWpgTcDFCNSC4z2jZbwXPSIP0DFibhuNH8dw+vNxR6oHJcJEGMdCdVXL62NlfjdhFgcH38u2dICTZs9wZ8y0NfNuPXkcoGvrlkdieqLzEEtAWYKlLAqTE+Hd+MRJCPwhu3/t/mIL0OCuppJQFzSqEE3iDD0pQSlb4VTRLLdjYTGpSp9nFVoim0elaUZEuzC/h42xqYEjy0VTNjIrjxIGKvrgzQprt7GdzSQP8kjMPF8WqCc/XInpE2W2o3NVmY0/Ltzun/gR5kRjXnuIHiO61WsULgnHyl11yEX7NpS0/4Rr+HAiTOphc4LyzOYDQ36nzHYVxAJpKnm+ZYeiRCvjE5atWhUsTcy56By0X8odo7Jouq+9UIc6ATuj84q4HlN6sporPMScdFnMww2gdFxVKx6scDUNw7dMr9xMHPFfz8xBSp8uZYjpfaorbIDgRx/4iMwcFgaDys//xUofdHPiF4rLC/S/F6QEoMzooIDm7o4GHvzdDXheBdL+o3USGYpN2osVCBhJSqv5lzKOP09p6FwmZqNYgaf2ozGwWikPE1byFkzlyLjzdGYF1+iYR/QYfGaYyNeochSRp5NNvkOaK9x28wHFYtSj9Hr410RXy4LOlZ6JnuXtO8g== X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3089; 6:CeGU/IhsdVPrcnkvxe1aMgpOabz5iAgI24J5vQLcX5NTtPMchXEKtjZA4qU+BF/+tHiWNJTDDfWLtn9TUaJjfXeQX/shRbj0DherQpXtBEvI/OGFeFsnAg1NfXs0P3ppGp+9/4gKo87BxZBKrpEvVb3nqmSSacFUGQnoXtLE89eolYzoZmpMTjWuOF/FwetmlLhiAuFAtSgrmA62U8lO1A3h1wCUxt0zuONvY1RvZhVGKouWtFmdT9g2eOy684xcI2vVpCK3huxWNQZGEAd2dN91zngXhTMuWs5wUpFmMTyqsCzJVvHyH1SWcp6TjToTKeD8uTA4gy4XFzJYegRyEg==; 5:YteeY0Nk2exg6phI/aFH62/NC6snM64Q6+Q3YMzo1bf6HKHVa4OrQSa9EY0MHQM3W+rgOuz3x7H8QvbGUajlkUtjZoJZi9e7Eq5c0kzmbRYqCuf+cqkVM8iAApM6u0TCE9NqUQY6ipfTUeWkRSqh8g==; 24:TUE9BGEUcsYUZCUDg1adzwYJX6kwoNsnqGzXnwaHagTT9u6BzkqFLySqVY5rfVmxgktVfm4zmrEUd8XQbnntA6Fu0XvQchQneH+J+uXjIQw=; 7:WAR+lQB+JC5LKftO7OXbp1xe6x2jOb+lckk7dVDst8Eu4LKyLK4aW3t/K8oTJa3m7cV5B1sqjtwlq8IHFTIaGyzpgw0VwLuDzs8yMEeUbWyLjwVKv5zmomc94lyX6iEslK3EnBg6xXSl5Zt9PdeksOKLC6qKHlBSIMNsOJmUSerM/M9JhmihHAaKzAcqKxmkH7MFqnDmg7sfPKdvgLkffrntlZk/gGxEgcKHnwf3fME= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2017 03:27:02.5464 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3089 Subject: [dpdk-dev] [PATCH v7 2/9] eal/pci: get iommu class 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" Introducing rte_pci_get_iommu_class API which helps to get iommu class of PCI device on the bus and returns preferred iova mapping mode for PCI bus. Patch also add rte_pci_get_iommu_class definition for bsdapp, in bsdapp case - api returns default iova mode. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob Reviewed-by: Maxime Coquelin --- v6 --> v7: - squashed v6 series patch [02/12] & [03/12] (Aaron comment). lib/librte_eal/bsdapp/eal/eal_pci.c | 10 ++++++++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + lib/librte_eal/common/include/rte_bus.h | 10 ++++++++++ lib/librte_eal/common/include/rte_pci.h | 11 +++++++++++ 4 files changed, 32 insertions(+) diff --git a/lib/librte_eal/bsdapp/eal/eal_pci.c b/lib/librte_eal/bsdapp/eal/eal_pci.c index 04eacdcc7..e2c252320 100644 --- a/lib/librte_eal/bsdapp/eal/eal_pci.c +++ b/lib/librte_eal/bsdapp/eal/eal_pci.c @@ -403,6 +403,16 @@ rte_pci_scan(void) return -1; } +/* + * Get iommu class of pci devices on the bus. + */ +enum rte_iova_mode +rte_pci_get_iommu_class(void) +{ + /* Supports only RTE_KDRV_NIC_UIO */ + return RTE_IOVA_PA; +} + int pci_update_device(const struct rte_pci_addr *addr) { diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map index c819e3084..1fdcfb460 100644 --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map @@ -242,5 +242,6 @@ DPDK_17.11 { global: rte_pci_match; + rte_pci_get_iommu_class; } DPDK_17.08; diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h index c79368d3c..9e40687e5 100644 --- a/lib/librte_eal/common/include/rte_bus.h +++ b/lib/librte_eal/common/include/rte_bus.h @@ -55,6 +55,16 @@ extern "C" { /** Double linked list of buses */ TAILQ_HEAD(rte_bus_list, rte_bus); + +/** + * IOVA mapping mode. + */ +enum rte_iova_mode { + RTE_IOVA_DC = 0, /* Don't care mode */ + RTE_IOVA_PA = (1 << 0), + RTE_IOVA_VA = (1 << 1) +}; + /** * Bus specific scan for devices attached on the bus. * For each bus object, the scan would be responsible for finding devices and diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h index eab84c7a4..0e36de093 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -381,6 +381,17 @@ int rte_pci_match(const struct rte_pci_driver *pci_drv, const struct rte_pci_device *pci_dev); + +/** + * Get iommu class of PCI devices on the bus. + * And return their preferred iova mapping mode. + * + * @return + * - enum rte_iova_mode. + */ +enum rte_iova_mode +rte_pci_get_iommu_class(void); + /** * Map the PCI device resources in user space virtual memory address *