From patchwork Mon Aug 14 16:10:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 27583 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 0315590F4; Mon, 14 Aug 2017 18:12:30 +0200 (CEST) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0089.outbound.protection.outlook.com [104.47.41.89]) by dpdk.org (Postfix) with ESMTP id 7004390F4 for ; Mon, 14 Aug 2017 18:12:28 +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=3ZNWB+Iv5n1eoQPvqkpbrnTKFoadDhZpvnaqgNYKVbM=; b=TTnYNJnvNLJcayWbvEOVY0tfFOZxHtztfjMgc3cppZv4iQQ06K2cuwL338xwmI8Sakdq26EZLKMRMndep/pLJwKtF/BQ5DmME2lA9ArfW0+QFINx/voXoVTu90mBbr5Lpo56Mtxn+SeQhiOORC2EeK3wjk56BIXS6KsLvNmwDSg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; Received: from localhost.localdomain (14.140.2.178) by CY4PR07MB3093.namprd07.prod.outlook.com (10.172.115.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1341.21; Mon, 14 Aug 2017 16:12:22 +0000 From: Santosh Shukla To: dev@dpdk.org Cc: olivier.matz@6wind.com, thomas@monjalon.net, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.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, Santosh Shukla Date: Mon, 14 Aug 2017 21:40:50 +0530 Message-Id: <20170814161059.6684-4-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170814161059.6684-1-santosh.shukla@caviumnetworks.com> References: <20170724084004.25542-1-santosh.shukla@caviumnetworks.com> <20170814161059.6684-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: PN1PR01CA0087.INDPRD01.PROD.OUTLOOK.COM (10.174.144.155) To CY4PR07MB3093.namprd07.prod.outlook.com (10.172.115.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 390249d8-a533-4c7d-3e50-08d4e32f41f8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR07MB3093; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3093; 3:zKvRxeAQd8vXPy4c+eJjGgW4GoMrekNPI6kgSlRW+GO9is8Ox9ula8yI/KCuV8VaPMn/skIyTxEOV1qaWNR8gisyQff6m/4AaebsDJwFNmrfoN5SihMotIFXvhDq+DFpSuYqZuojHITajysCn/7Hm+vgxjoKTjJ7GiZEpmEUGBNWNgQbUZehC1TkQFX1GudL2lwE5xR845uUXHe60E6IviUjblKP9ECEGMnGb74KHVd7FFYiutCbswUZqAxoLjbr; 25:v7PyZUyriPlgQuU7oc6SiPHlez6s1roM8p7pdBSPqmnhOTjqpB7o7pslSb+HSGV53Ag1gO22Mf7ddkDgruy2HJ3OUz03TWDFUi62E0dEKp9xSqHG36ZGy+gMmgJSycAUtEdjhxhWE7QbPMV4XUde+AK6lf3h7rgVZxsBHmARaXB6qi4rpNpB3sNvg5Bwrdk9u1/YbQaQ1po3gdhIxZnXQ1a3VuwymCQAEDX9AmKiJhm5X3kVG7tJWxY0nf51sTVNgXR6ciJSSxjZ7UMqBzH7k2btzIKKAv5eiHaU8v85lK5063/eMIg14qA4IMxZb133y5fJU0zsA3rauvObzKZaNQ==; 31:yU7hZkuS/V++yM5vzDtFtizATcwJwEUpd9tlXbgvGgmVlL2Cd5b4OkwfRXS3/LuWe8gVtZRFugBYIIbpxOB86gT0A86MC/qDQfv4ECfgDjutPWdmA01O+u1Lrp+4aTNE2wcGDTDMEJnrIqfpoX6W9sD/BqhpQ8lDTVnguA6e1vwVYffSUNvG+V5lgc4kfcVN2QY9QaypzArJyaEuxEyUA+3CzYYclhqarrFBWWKCoJs= X-MS-TrafficTypeDiagnostic: CY4PR07MB3093: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3093; 20:dzXAQptni9tJlcu2uz/Ac8sWzdT+3QOrofXmEEkNMCM7GUMPjTHdP9lZ5VN+0NTSWFfBLqwYKHNG2ETwnkYbg6aFQ0J75r0b+KHcdw8WvRJAFE4cdg8ZIizg+TTgH6/FTBAYYJiUaoj0EU60g6m06UMAb+q3bEe4KDSip9Qu/iS58p5QeCN0lZruh0Mo97vtEj/zFUupT91wfRdbuTTjXulYL9GSmUabipnEll2O9EKdb8U/R/lF+gZUtUrZz+fxNU/lMs9oatPrrrX9fnXJpqlCxCY0FG2jVWMqn+OJqCPZ/qNbHgeOaYPF4e2JfGiYS8H5/T/7D13J04kroPqdB7onSxYl6zAY3kGWC89v5h8vVGtpA10B+vJ7SqaYW9MrlyPWE1pK14iBIcEx7guBo2ayW4uuqIIiWTlQVVwbKzXJ3xXrIH9DD/CuppItc09+kjQ6QJ7vaphiotxHUIM3GBN/0FXyueaBxwRixZMvtWfJ4VXmxVDCSpRGW/P5G5XeeX0Q3rhypdA8qxgrZGCiRlDKod3/7+dUkLR3stfPwgG9TRZNTkdiIbOVrBJCsOQSXfFcNCII6YfqAWYmHHAVpQEYX8Rz1UqJChsaEVTx3Lg=; 4:hA5wwm6l6XycjTiGsEudgWPJYZpeUaIGS7c6ed7j3mQEYOuvugvVhZjIxSz5vARJu1FqEUFe4GQbLA7sewsrqiSXLm2kaozCSOWxeKoqGgefRYzrAXvarfTtC9pJ1V/Sby6A9fR6NHeXoBGTcokdH6TLQ+7/Qc/HhA2PB3/5Y7BHynAcDkbUqlUjKbj4QX1mNMOWhLayLQxeaYY4jfHgnsH/uio5Wjzr3LVIrQcSTcfaKGGmBzdj5Y4V33cXzPeN 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)(8121501046)(5005006)(93006095)(100000703101)(100105400095)(3002001)(10201501046)(6041248)(20161123562025)(20161123560025)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3093; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3093; X-Forefront-PRVS: 039975700A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6069001)(6009001)(189002)(199003)(76176999)(101416001)(1076002)(50986999)(8656003)(6116002)(66066001)(72206003)(7350300001)(5009440100003)(3846002)(107886003)(47776003)(110136004)(2361001)(8676002)(42186005)(6486002)(50466002)(48376002)(105586002)(106356001)(189998001)(4326008)(6506006)(5660300001)(2351001)(25786009)(6512007)(81156014)(478600001)(36756003)(33646002)(7416002)(5003940100001)(7736002)(305945005)(68736007)(97736004)(5890100001)(6666003)(50226002)(6916009)(42882006)(2906002)(2950100002)(81166006)(53936002)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3093; 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; CY4PR07MB3093; 23:8CPuVJb26/7yC6H+xhOI9w8/m1kx58ZrAnbcvCQ0s?= bclSBvyGRFTg3mnSm+xm7j0bhEB/f3NXuzA+64HbjNpQ0PkfERC8FeuCzPpFWlHPKBHbuzqmUShOdWArSq85Q1KFyLb/qDtB8FhmhSBE04TJrhRwbVKggVCxVa30kl4lNXD6P1rb/sSYtFy4e6BqBaQr6INizYrBJ50NS7lvP9bnU/jxFIbZ0WAQzGqrgFLMgy4MwAo7+KLQmOSgY+aOkYq2RwFp3mvMZWciL/Cva/SN+/wYFrL3HEQhidzihSoQ64P8MNcRKmMol1ikc/c98/CghMzZHHh4y8AL5zL7PqDBfeHs8wgFgbCGmsFAUgvHVY9J3X0fa8xMOblxArSsMNa6LMcK1VoDeHPt45HtNLI6Rd1bbobZHhFJVgAtvMOri8pqgq/NLCfI1diTAeqaZuRAVoGJwoAmrPDYSk6oRPQ3tBNqxoNaihjw8uKoaJ6VmZ84zxhWOWDVeWhHc2nOmRDSybnwSi36eqPfNsxUXLWtq+s7NaNf8akSNK5wyEPBgrfzMP0oS9CGGJBfbe8pYbsJCDwEdIV+ftIpx4gNqm9+o888grF5yJwvtv+k5+PYmmjs5uHxSnUsa8kQSZLHfrrHfCs9O3h31/AH8zZC+Qr0GLoKeOX5CbtoMXNWTJrd571UzbNX3iQSUnH7B4jKYyt/QBZyvUUb5mc5BVDh2kA9j5QElJDdJSpvz8uBcRPyJjLaVslVUQWr1Ia/lhPnotpwqwfXERCOZj6boHy2+4lbSMa0Gmjh+TDse/3OAWR3riP5ecStedTXuYIFOcUy0Fp+FeqiN15AKRbs2QSiZe9tA/9GXdOGabwGHbMyeZnUaprThKom3KM/6Ki7WW9sqkjx2heCUiouswlQrVzzq//okYm3y+N9JUCTR5FGM6XjnW3+QECzx0xk2Nuntvyh7TryC/9BfLsyqrSgS3+cG5/a67hKiu9jpAfgWcJKJt0uQq5rr++Z98iZL9As25qEKWTkW5KR1w5nU5ZKbqqShHwM2M6mdOG/0mtFGX8gCPbv4eX8j+i4dPbJO+7GZMJw65rqpSblpOn5bzEYLbT1aHCyao59H8zORSOX7Fuc2GuFh+B7f6r22P06LcH6R9a1jrdu1yXUYkUImNgk7ZfOtjgpLGLNyEA5cSxpnWyQTFPj14rNrOEq6JOy2kDPebIMpen0mhav8glRfcsGe3hRzDsji7TVWLVb8Feac2o2M5zjKr+fo7lSoksvtiXJsWgmQYDFGwEXg6eP4oOlUFrEtzEfnBErpaqTdFlKerpfznDOfU= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3093; 6:wIeKS/9llmfLuAQcVMyZzXe1okqJ7x5fiYSe2lIFKJHk4WDCccurxq0rXkel9tRDnRN9Kc2AYk587nzDfjHNYxTqCZA1nQPvx95CFHDx0nwXuC7sZ1C5ESgYx1Ch15Smir4k4E519JVXpcH5stGO5fDph2m5n9YTZHa4kWGyMQEOFQ7EEmrGLxfqZSEU2j/Jkzb6d7PWvNvwFlzwekfWPHg+rrS6Yx0T55dtqYy96odknJV+pO28hM7j/ohDz5sjoHzdV9VcZF0AJ5I6tTow6MyER3r7JFHP2P6SCwYXliS/BQogwHGAHKRw0IzsGoye1QKeiveV4FC8S5k1HReu5A==; 5:drOIalGTwNGkCbN9a5CmRCR0dvZIQIC+t7NtykuXaxojllHrzEbhONN2pq96PHLt0YQoIsTCSRa1BB/jtcAY2G4G6eSsB4kdn/vI4pv85/OovnXAZggF/yZfLixae96pOABwAl4gRoaHKRUNAPKqqw==; 24:gI61xB9nf3vFl/eJqHWkQJDWwZ+QYCzKBe5oDPOqsZ8oxtfHXPrm6q2DtHebLLxRmAuoPPaCdZA0qaEwlo73zMkmef2FEJgv82vYwHdpGeo=; 7:KqFA4swxrtAPo6nJo38jb+s94rl6nIqkup37RLPPu0GbScf5tQs4ACap6gvvqA4Es4oYGyb+2i9UQ0wjwdEvMYJe9Sf2gd+lw7n9yVsV1RH7w5h+IEoCpAN45GileKKXqWb+ezS88Vk9cvSnpwGynt7Nxad4xvT9WQ+PF4SjPqM41BwUxFUWbvS6jDvMxivCFwC+KbRVkGwp46sQSwX3G8T3Z9qekJVRj7mJaMJ6rqM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2017 16:12:22.5994 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3093 Subject: [dpdk-dev] [PATCH v6 03/12] 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. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob Reviewed-by: Maxime Coquelin --- lib/librte_eal/common/include/rte_bus.h | 10 ++++++++++ lib/librte_eal/common/include/rte_pci.h | 11 +++++++++++ 2 files changed, 21 insertions(+) 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 47f0532e4..a67d77f22 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -383,6 +383,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 *