From patchwork Thu Jun 8 11:05:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 25189 X-Patchwork-Delegate: thomas@monjalon.net 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 A2CE23798; Thu, 8 Jun 2017 13:06:24 +0200 (CEST) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0067.outbound.protection.outlook.com [104.47.38.67]) by dpdk.org (Postfix) with ESMTP id D58842BB9 for ; Thu, 8 Jun 2017 13:06:20 +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=+Y4knPxNfH4Qf9ja/6fhnvgvYd20Dget8SCNCOSF1h4=; b=hDT12ZhZORHztfxT6x3RvsntTCN4yI/bh1X3mVwloLPAEj0pLr8pHclm9AChoP7tteHYVB3zWMrOIPjRpwcH/xzLdacM0ZZ0lI1psiNgyKMx8yx+lIC+V4mz9M1MdaVYAarEisD98eQOiFoYRhDk6OnORoyV4su/2rcbk1XzbaY= Authentication-Results: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost.localdomain (14.140.2.178) by DM5PR07MB3099.namprd07.prod.outlook.com (10.172.85.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Thu, 8 Jun 2017 11:06:03 +0000 From: Santosh Shukla To: thomas@monjalon.net, bruce.richardson@intel.com, dev@dpdk.org Cc: jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com, Santosh Shukla Date: Thu, 8 Jun 2017 16:35:04 +0530 Message-Id: <20170608110513.22548-2-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170608110513.22548-1-santosh.shukla@caviumnetworks.com> References: <20170608110513.22548-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: BMXPR01CA0025.INDPRD01.PROD.OUTLOOK.COM (10.174.214.11) To DM5PR07MB3099.namprd07.prod.outlook.com (10.172.85.9) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM5PR07MB3099: X-MS-Office365-Filtering-Correlation-Id: 3ad04446-ce7c-4964-b182-08d4ae5e5c90 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:DM5PR07MB3099; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 3:RewsL16IPy4OYPo1I55BkSGxFToyON3sIOgNmSEjru86bpi1gI0FzZji+tSjbQLchyw41VikITZCdHI+kfN9dvHIsJSsIPZy6TEaJNw03mrP5cykehY630GYvs6pIAv3kY5XXO6dzz8godccXFTkOx1XMBHV8cZUOwKCY9IhyaOUlg6Kd8Pkk4Xyjx+8LBH+llUTcOsYOs+c++AxPZyggv//c6YkgbAXM2uq53qWlVFTLpKjt/8sLsQqixFd74OVrfylOvE2FTN5XV/nTPlR0tRJ/I9tjFnOtvnafHhsw4RW5eIcz3XWlovrpiNFtlsxt4Vwz+YrSW5ZiYiVpVfVeg==; 25:u8+l3CzDLRK7lOQMCZUSRD7oDORkAR5bBYdEYs0TBwqblHKCA2NxGYUk0tHKrOwdXO85jCRV7/lUxfknI+RfvoDuqNbpo+RrUvVPuYSPTaVLBZZp7Bf9OpsHqfS/z73VuSpRg5xj/CyVBeHxsHXrurVH1JkgPkIXVF7g7SbRdFTHUXVtsSqcP+ArnKCVxaxuxDeoL7z1B80V6gt+lj3FHfhDzOJU+sdxeczbEoJBFQI09FbYu4znOljGydSDdv15NT9C9C+uM3lbpG45D7SooVRN7WA3/jViLuMIVO93HQRdqGB3xKpC31wGQJ5YNx30OMZ7+OTQYp54IZOt9GEz08viuM7UVvEdL8ou+rmGKYLosNKIk2QcQEl5lrpm/Sg2JLrttJTFyJp6Vg/yN5dWoYzQzwA0klQAq7qa0so0UIR/NfMOpj6nirpnebmlndAJOr8j21xbBFxOQubTCfcopU8bQinw4F7vMPskqTAZA5s= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 31:DW3Mkz8B6ShArGCL2Fk7+pn73m4WJi59RveHbe2ptWWk7GtdteDS76ATt+NFIrkGn64pJfSCWzEuA8Pw1uhqLbhZAZZfSV4YmaUwpMzQB542T02yzvtFF+capYdaczYwktAq9aDIBgAMGzUuAb+werHkWpo7Ewf6Lyh+QU/xK39r+xifFG9m/hkjSfhLaZUBFjG6Pmr0/U+UJtOS1CNQwtyRhAhIEb/8EU8zzhNewdA=; 20:ssLDQ5kc9iurlo9CePwd1G23AFVGPAf8P8I9w1MNKjaqQzcfzXWPP5Si2diXKVCpABIe7/+2tUHUV3hOi5iiTCdzulb75rM8X0mBN5Alt8IbZfBz1i6qCUQIKa+0RGiImhQ/fttoX3EjUd+JBNrKcuyfl76wlRkH3tMk6QMwZLhv9F9wgundNLh4GWW87Uhaa8i0yFlp83+Ll1ydN1u0D2b/XdZjHwFYZrK0nmj568VsFcbu/YI/dwcg+UQ0lop8mYdNdJ5dFa2e8J+YRhIhfWsIIVxvowFzpL0eZwtOHKBaDLiDPa1WswHsv3z8Qz9Xb0i9p3dnYmigP/83CHAm+C3ZXUVlAaTHL09LH6eT2yJAqQDmwlFCInxrXT/bGk3V3KerMLk9mNmcnFeZprUIK4RtBx5WjJbzFD02IhtSdn4mj+YVIh8QCYj0qBHfmlN0nJRln7FvAUKbKE8G0Nm7Llv7rzAUyISYpjfH+l+YU1CvELmDeDxwRTTrb1qtXlu5By39ChR/qEkMI3LHJIPuk5zphTVsEO4Q8jpIH/uFDAPaniqZUVZUTacbgLr5dfNlLrr1i52Hew9E66zBPfw1LinY3gQxx9nLdpwGGUroC5g= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(3002001)(100000703101)(100105400095)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123558100)(20161123564025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR07MB3099; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR07MB3099; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR07MB3099; 4:I8QUQjGUxJkjCBVWec9XpbaFC1VDdbuG6U8FgLSdS6?= y4FGLkDxQ4mnHB9OK9W77DYRwfkCPpzWJWQPsGIvmVCvgMxzQmhy1zzZXNU95SWT5Li7aHwdJ9KvASZn/KDfJrEYYflpUHbZoDE+GRhT+bVHsE+2CUGjupZfrt4a6r7UDvOpggwj9bBnup09/xsAooyXRV5lGEOFMFY2+mYh8Mp0K4QE6dMv4EYwPsslX3hcDiBsVUsTmmdh8GeGkJax94El99IAJOzYo/pslUikD+7IB3H1MRNXMehzeFp/DHkEy45Brh8pypR+rDX9CyFMXM+OebwTSGInZlD/9qhvhSMAGVnZMy4SNPa1vVqbRHUXbCxqCtgiOj8Z3vjRGRe60aVcvmNJ/a1DoKP+aBA07JPWImAdCYGLDwBLP7my+R+kipIu4/JQRM85GvTT8X34dDvB3jijUsMmp+db9HU0rGH5m+bQpfH/AiAgkECMauYRguea6vlPfq+BTttD0uy7OPVBiePbXZQFxpkfwGCl6+6UdBZPpmjpGpSh6MJX031L9ybowOazWIlfuLycVQeB767+dQwIVjCak6PR/zkOS36saU08BTXstfJn+6G3jO4Togl6GQd0XlYLcv89XNFKu+u2bVjKhV+dGFR3I3FSVYBtg9sK6ZCnEr8gBPIi7A4W9P9NUlRiP+wHOvdohCR5ntjB4JVbRT44WKsTCX+30/3QUpUcQAxpPbPi2Ug7oqve6cJ8vBj4ODrq/96w1nhc1/mArhDxN72TBnLXlkSlUs8BUo9TuVneYeWhSoE8laf2o34xGbLk8efkRnig6QeXNwEnMY67W5h7QNslMIah91mCv5iqTayCbcTJulQEDxoCVJaUNceCuka0/0RUKZN6lhjxzoleLhpl06piQ8k1WP8e9O1QFm7niNkn+N3NGP5ekuxCiAXiDYv72fd4VzduLSLNHHpAFUiZlub6rkh0QKztEE4XoJ4AcFmVZYbicNg+vgyDFZtk0L4AMFx5vDYrNo5RcgYfYZw1bnRmAzdDxUZF1/FcMiUGptbTwJiaU+8BbsGDKt2/hCkWbpJDzx7j1ZKKx5ngieGSOm5YkOJRZ8C7Z+TaT3EFxyeLg4TMAbxuE= X-Forefront-PRVS: 0332AACBC3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(39450400003)(39850400002)(39410400002)(39400400002)(39840400002)(81166006)(8676002)(2950100002)(72206003)(6512007)(42882006)(8656002)(5660300001)(110136004)(1076002)(575784001)(38730400002)(53936002)(3846002)(7736002)(5009440100003)(25786009)(5003940100001)(305945005)(48376002)(50226002)(6506006)(478600001)(42186005)(36756003)(5890100001)(50986999)(6486002)(66066001)(76176999)(189998001)(33646002)(107886003)(47776003)(4326008)(2906002)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3099; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR07MB3099; 23:l7jVXnS6pX8CYG1REaicYfkFkR5C+bQRF8sJyPBOa?= KBi7r0vK/qM1Zz/6ZicHc33xwWJnRvDvwNjX9t4NP7HU4X1Yd2W5hCgBonAdVouVlaiZ4aFwnyNHxPimJW1ZyqcAXW4TgXzFKNdsSZSoLEbywqwHngGJBWHmQ0d7yfSjP8bqXqJyZKzTc7Cy0oZgNiArzw8fbKfe5j8wPMKD047i5g6l3q6Ba/aY//arb6UUtSCHpaQrIBetuXv+37wGTfiMs0+ViaPPjieQXHyVeInBZDtXu6E15aF/m1zFmwT9Km5+vQJyrvK7uzcckTCzFkL6KgH1V8puUT2N4BpBLZxfpvJEwwAaTB3bn8pIrC73UBOkJ7If3F3ICAs8y4Om0tCGMq69cqM69+uuNwrrefQXtTPqiIv0pDPtHAd45Q8qRhn1Mt82oAo1Y5muy4FRIsBsCp6p/eW03qkACHr21B9Mko0HX/taBa5lhZGtrruEzzM9dXbGYRC+2cu/j8uNkIVokFeMbbeJR7m/LqAshPcmvq7qW1nlsE3IFOFysFy4fViOT3T0OZpLbmvA4PlRj8XfvtEHdf7+LnAwfNmh2vWY/ZAAXkIT2SE00afQxjiv8v2VpNbLE7KcNRFw0J6YLrzf2f88Tz8FTk0OLZB1VyXjhDceJEfP8dP7Z6K0RxZ8SCkJJHPeU1G00K0tevBdbPQ39pvgJUlY4Y3mvZ3s/aSuXVfbyZjtoUzhyHLtq+JS9qcKVuUTo4Jgvht6wG7uhvssafFt8g9QyPqozbvNvWXwyrR/+Yfd9PinKmcfHZBiKsw+813lprDdFiFGXkIj/LWPCoVMQlo4ZlmKreQW9maeus6mIUVscelktMG6zJPIx7DOy85ZZ8Xll/zjdTrM5i+koQQgZwxXBwT/ElN2vLaQrkUPqksQbKVFJMvggkOYxZeld7cUMKSQhZuk5NJ04PUTxubNVX+gHKcj9p9813UQxRrH7v2KnoPkRilYbLWGvwfLYkEdOW3TCMdID2p1po4PjLBsM35jJ7PMPzKGhUK2X79HswFKyUuV/eKHq4sYdiAPN8E17Ux9E8e4I53+u7pBIOunyIUz/YczHKhod8iJAb5n1cuyBQQ1CnyeYEsMFKUvYJ28vl/t56IrjLfpJIgtpvx4T5Smmfv/+I2kP7/4w== X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 6:w9Dn4UB45/aBpipzKQQwaoAj7gDkSn6E/sXcRdZ3kSPDwkGc0m+uvl0i7QoCcxD1s37vUBq2dJDMKlDPHU7Orj1rrqLcewpoS33wjSfIe1Nv1l/VqYex3dtm147xlfbmp1AtzPjvsWJsALN1lP+4MaBqhK4mt4qdWlqHAiFJlYUXlgmy08N4t5dAZoEwIA+fRXpYNa89qn6sJDkFCOHy1K/WjZwdTyJW89tOXMsqUrbjOfmzHGBimVDO8/aT7XETxc/JaCViUH8EKO3ZuaA/pWIS5WTJrbtlgeXDF0V6QS10fLRmb7EO5sRk6KN6/Q1lUzFOXTirIrYWAqzPR7f0VZGAILuxfDPCYij0ujG8wmuFtxluIKbpilG1zsucdQ7PtDI5NivQ7Hz9aHaAlRzg85sCLo7WjaTxB5B9NoKmN+eEkQAbH8J0qHw/D1eIYELBRPiCGlRNoSgr6FQ7+IrVhy8n1q+ny55TlkvAuXjcf98tiPE856Sw4k1gBLQIxb6JncoNRWGImJApVg3eihicAA== X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 5:npvt+5ncaK3f/78okayABUx7YY5fj47/sGwexmRqx/pe/uIvLZROXRd4h0QdBfVBu3/Q02TOwo7S1adRMy9K+3S+liFlZc2uyy1CanrbDOBAoVqwc+26oIwY39j1Id/z4B3hT2yigybHRDV9Sj688/KQpfSQ0kT6PfE/yt4oF1TgzDDPa7IiLk21CaeRHOeQSEiw4u1NGLRyMLK/etDiOFW6+6SqhCg9S46a1HUPcinxb1wa9ayWBPMWj69l8Nn7SDx+vDQ25+EFLDL56izXfxeg4YB4n1nZrznEo9WkLsSpA8O49V3A35S+cCF5u7JfUMhC+yxGrSFk1uab1JIHxV0nDJWa2JwD8DzqbSfJVNCcJ695W5WcRScbB0w9jX4FCBX9lR8gPVWJLMggXVrbRWOdbscxjAlFOj/unHFRFSpHlwnl6p5M7ZjmHCSChgRDLW8fbTKlt22EV2u/6r5kRKGF5u5AZnm2fMipWJKm3X0VuWTvMbOy41PZmwb392i1; 24:AGMGbPHzhfrYc//4K+aDF8JqA6C/i070UFk44WT5KVdr/M6I4SY2yMylfSRu9TTuZbfUI4LDiBBgb+BCLb09Aw5l6WeIIBt5GLmV8G02BrI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3099; 7:k1mU1leGzG5PkHr70dn6+lTxPKT5jhvO8plj7Fs9MUUpEQHrKOdaYcTPKWJr5S4MDVvVZmkZJyOcTxoHtAWYwIuqSbdHmeUW0H1YS2CknYcS2M/UrpAwuw3MWTwDQMwOToQ8WQ2IzWIZnpCbdhChvEtTJTHtBqqygh4KxS7u7G98kRu+53IbC60ICpVt2fqEW2cEJr7GXLwGWqA2eoPBLyEG4OFghq6CkhJwK7rvjvmxP04ia+Cl8ThdrZmkxzzG7BDydHu2hxdV2nOPdSUcYkKI/boRI0QheiuWwItbrg7gjV07oXxEoHcEu79J29O937d5FyJnjVAlg2TZuZlZwQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2017 11:06:03.9227 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3099 Subject: [dpdk-dev] [PATCH 01/10] bsdapp/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 that bus. Bsdapp case returns default iova mode. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- lib/librte_eal/bsdapp/eal/eal_pci.c | 10 ++++++++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 7 +++++++ lib/librte_eal/common/include/rte_bus.h | 10 ++++++++++ lib/librte_eal/common/include/rte_pci.h | 11 +++++++++++ 4 files changed, 38 insertions(+) diff --git a/lib/librte_eal/bsdapp/eal/eal_pci.c b/lib/librte_eal/bsdapp/eal/eal_pci.c index e321461d8..9c6670964 100644 --- a/lib/librte_eal/bsdapp/eal/eal_pci.c +++ b/lib/librte_eal/bsdapp/eal/eal_pci.c @@ -405,6 +405,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) +{ + /* Has only one drv (RTE_KDRV_NIC_UIO) so ..*/ + 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 2e48a7366..a9cc3a67e 100644 --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map @@ -193,3 +193,10 @@ DPDK_17.05 { vfio_get_group_no; } DPDK_17.02; + +DPDK_17.08 { + global: + + rte_pci_get_iommu_class; + +} DPDK_17.05; diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h index 7c3696926..56eacd0c9 100644 --- a/lib/librte_eal/common/include/rte_bus.h +++ b/lib/librte_eal/common/include/rte_bus.h @@ -56,6 +56,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, /* _DC --> Don't Care mode */ + RTE_IOVA_PA, + RTE_IOVA_VA +}; + /** * Bus specific scan for devices attached on the bus. * For each bus object, the scan would be reponsible 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 b82ab9e79..bc403123a 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -377,6 +377,16 @@ int rte_pci_probe(void); /** + * 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 * * Note that driver should not call this function when flag @@ -472,6 +482,7 @@ int rte_pci_detach(const struct rte_pci_addr *addr); */ void rte_pci_dump(FILE *f); + /** * Register a PCI driver. *