From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0067.outbound.protection.outlook.com [104.47.33.67]) by dpdk.org (Postfix) with ESMTP id ECADF2B8B for ; Tue, 5 Sep 2017 14:28:08 +0200 (CEST) Received: from CY4PR03CA0103.namprd03.prod.outlook.com (10.171.242.172) by CY4PR03MB3318.namprd03.prod.outlook.com (10.171.246.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.13.10; Tue, 5 Sep 2017 12:28:07 +0000 Received: from BN1AFFO11FD038.protection.gbl (2a01:111:f400:7c10::195) by CY4PR03CA0103.outlook.office365.com (2603:10b6:910:4d::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1362.18 via Frontend Transport; Tue, 5 Sep 2017 12:28:07 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; caviumnetworks.com; dkim=none (message not signed) header.d=none; caviumnetworks.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD038.mail.protection.outlook.com (10.58.52.242) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11 via Frontend Transport; Tue, 5 Sep 2017 12:28:06 +0000 Received: from [10.232.133.65] ([10.232.133.65]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v85CS0Xv007031; Tue, 5 Sep 2017 05:28:01 -0700 To: Santosh Shukla , References: <20170814161059.6684-1-santosh.shukla@caviumnetworks.com> <20170831032618.7120-1-santosh.shukla@caviumnetworks.com> CC: , , , , , , , , , , From: Hemant Agrawal Message-ID: Date: Tue, 5 Sep 2017 17:58:00 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170831032618.7120-1-santosh.shukla@caviumnetworks.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131490880870336520; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39380400002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(24454002)(377454003)(36756003)(54906002)(106466001)(8676002)(81166006)(230700001)(105606002)(76176999)(54356999)(50986999)(8656003)(4326008)(104016004)(68736007)(626005)(8936002)(6306002)(81156014)(498600001)(6246003)(2906002)(47776003)(65956001)(65806001)(53376002)(5890100001)(53936002)(50466002)(189998001)(33646002)(64126003)(31686004)(86362001)(23746002)(229853002)(966005)(5660300001)(77096006)(53546010)(31696002)(4001350100001)(83506001)(7416002)(2950100002)(85426001)(356003)(65826007)(97736004)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB3318; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD038; 1:J/hA5erFWmzW+KsbK3ckXeUMWoJwgEqVmf2ZxzqHwWhEgehmc3YnXkB3CJzjuigybLlrUAA1IbdUFVenboPJCGJB245YQ/wj6r5gyy/rebz8o92KVPv/sgnypF7y/bPz X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 60e276c4-18f4-4453-c808-08d4f4598ff1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR03MB3318; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3318; 3:fkTW3XrgxP7WXMUPPARlW+BUhZWXdJH0oY4J2XBGJkKHtfn2z+6qvrXRZWpSVZ6aaM4kuukOtOuvSCONIO2jglPsFqxJ9lS/IuoFiMdjGe02lVnuPtrStWsRVNi2OrvpiDP+sRhbZClJwFkonLKFy03U8idXJVv5Yg8sP8EBBg4Po34kr8mxQGElO9r46fG8xM6U3l16Kikpou5e7DNUe4M3Xwo+12Jwi2RecMStXPViRegjSSSc0G2vSjM8iJocXdm9VOdDgGJTDIfBciLJAwPbjGonbrzGpsOzBPB0r9OlNruXr5MRxoWD3uKkzQ0VtnUpoSLb6Ag6f3HTSePnAaVWdqED5HAV0q2drGOReeA=; 25:ZsjobEm6advEtnXmcsvmCf+iGKwhwf8Hcu9DCkjktEEs5QzBNnTgtIorENYlZ+QVI1q674TN8owBo2Z9oQsTjhRleJpohe3zuhdw6XdUFgTUktvao7hqvpRGW6qzSTZRuGR6GJ4xmsIMXGJxARL2hGDKXJNWAM3GM0nouK75+l5PDiHRxHH5vYxqkw5uZroXsZ3765wlVLx0PeifnyUydbKJytVm3z+2qxkYhGXoQIhBtANRrD39iMIScFHunvRviv396bgEpIn0N+jmJn7tdleE443l+5pRWrOu/YXUgnZlvpUnmpH9EcLY2AJE7R8+cbHxtHtm1f9Rgj6/2486pQ== X-MS-TrafficTypeDiagnostic: CY4PR03MB3318: X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3318; 31:pd907q+IXFImbsQ2X9CYx/JHUpaX0YUHzUZ9+It7h8olEH6YsCsH97x8IJ1BQVDkCso9N102URMXsOsmD/82/yAuDWMuuBrxlXrUmsEscCo79U1DKjNgWWGSd3Pw6pmdu3plNlAAu13Or3l0gnkOw72PHId+A2P8U6TgHDwf6U1RjwhEHTgcBDN9m3gPm2eac4xd5tb/O0KwcLIzNSKyB90osAu3G/8/vpVlAP3X3eU=; 4:YBoeHfjmgzPB/REScoGptaQjJIHka8Tfr58uoMz8XgvO331R1nJZiUq40MMUcceyyZFsHSkrccF1bOX4yz50e9Xrk5eB3Tml6Z3DXomoUNfyU7v0EvXwa2wmcA31VpLCqABN7i7y3bieqhxWPtgvqJoNXEAR8567LzwSWafhb+TdZSCNWTPXEwCH8c1/EaC3DMUFyltnl7jvijU6Cs6umWHubedjmyXF4YLQecaf+kIkvC5zEmj4kPqUMhlwfHRo4SfmgTCkkk9yDDzEhhFdUxDQET19P/vNnEjFcjSjMo9eFIjSeEJL2OreGmJwCvqD2nRzkkCT7BF/1z/hcieIUg== X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(278021516957215); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(6055026)(6096035)(20161123565025)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123559100)(20161123563025)(20161123556025)(20161123561025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR03MB3318; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR03MB3318; X-Forefront-PRVS: 0421BF7135 X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR03MB3318; 23:ed5JelwbLLBHIi7nCU1SGOmKzx5rgAGd3ZL6i?= =?Windows-1252?Q?5bi7p3IDlPs1gB5/QtM5E/rKcF6a9DF1K17MjdPmMC02Nd3BRlGhA6A4?= =?Windows-1252?Q?uUN5dL/1tOtHTtPrpvC7b3SHkYcapexPqRjIHWVeVX7PHILAAkSgZ60W?= =?Windows-1252?Q?E79Z5llp275b69LN7YDs8mZc68C+BKY0eJIEQD6UeWVMyNgYUUWihi9r?= =?Windows-1252?Q?kRcxdFtaHW4g8hdS1H7LSCk4Z7nOxYiRAqoKkNk7IRkUZ4Y8TLgkSm2K?= =?Windows-1252?Q?DWr19D3xDkY9wCKsgAMKvrr5/gg988C47TJBP0/Zq5nLqWgHA5HLewOa?= =?Windows-1252?Q?zpZAsZYkUxDX6oInbbI9DQuESWWN4+iJq7PUwwZB9i8sXF//AKbk/XqZ?= =?Windows-1252?Q?7B5N5qJXCMEta8PmjijuW6AqoYJKH7Rl4uQBZdUtD9KaUSVhYJ0K8hQ6?= =?Windows-1252?Q?/kowVcDjzfQXTl7vev9lRnc5Y31VJhUcZMT9i9M1epz4WbBPPHOkPEX0?= =?Windows-1252?Q?lWYQUr5ENrCF9Ol7TZbD+8YOEHgfNBHJbYMU5sC5FV2i3CaT3QbIagSI?= =?Windows-1252?Q?BfO+Q6oski/FFdf7Q9WVUlJYxD8mws0Ei5mhYEsvV5FOn9LKUW1Lp/DU?= =?Windows-1252?Q?//dceTkCHxr/r8ZlMOAz9fkObgAe7L5bwwLNOlTo9dEcaZY5chBndhMJ?= =?Windows-1252?Q?N4r0AqHI3mvbloPNrq2p/QYVQTxGqNXaYSYWsG0NZMpa1oI3QYLF9Ou6?= =?Windows-1252?Q?RolFMyy/Vzh2hYfAbYdzeIHzG+TKDcFCdwjhi3sSZ14K0QfosBPZbXyS?= =?Windows-1252?Q?unaSBAg5WFfm8QDlqx3E1ZrrbDuVAz+BPSsEyIkxR1ymz7gE0Sn7JTXC?= =?Windows-1252?Q?FigxKYs55WhjYUFDaI5v6rbmN1EL/KJyHoh6iHC8DMKuyeaCkhBCxiuK?= =?Windows-1252?Q?JMX9QK2fAq/DP+yily1Iz1H9eI3Yt7wTSbnsgQF5WeaKWFM4vGvaAhwa?= =?Windows-1252?Q?j5Boog0q11MXqpppuhTCvr7B7GDo2QcN401EAQi4Cka6Wbh7DM5sfzKj?= =?Windows-1252?Q?C7+4PQi5vhqlTyX6VnUcYoaruJjxLsSYeBiZYbzBGmMtvo2LpQDtWb0u?= =?Windows-1252?Q?jYdDbqGR+ed7+YPEPfBNnMdjEwUcbl8gSK2TK0KeiU2hzvkY1tsX+5Nu?= =?Windows-1252?Q?b7qNq15KCFTDHvL7qx31oE8E2JoDMVZtcHT8rh6okt1K69AEoCuGj7Lm?= =?Windows-1252?Q?Brs1qv4jJUev/EsGNDcH/pBfPdH1J6MhxASn/aN1C8B5oD9z9anleVl/?= =?Windows-1252?Q?sCE8UsfzpohMHti83s9noVAiJD7CCoguJmM2b/27i4uhZQGGFMHc6J9C?= =?Windows-1252?Q?LOkdOamibBELjI/TbB1Cf4+dz0NdKgpyfdY4DcOaTts45+GKQw6n089Q?= =?Windows-1252?Q?ad/e+fFlXzecasareW8+lbec+GakgnYa5xkAVofdeRAbDKw+d1/lurvc?= =?Windows-1252?Q?v55uJC6A7QJU6xNWEF0G20d7m/nOvWTp/jADFRQ6Cw5FOknNvksyI1eB?= =?Windows-1252?Q?iRRviQOehscwtE=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3318; 6:rFyZqtwmdPaFLAM2qdTWPR2Xu45OEAt3x7qlPa0EAy4tw5H5QucZn5HGNicddj3iiVtQVka1XEsTsldqRMtEV0zlQZokE02Rj4G6GlgI2L/m8Rarn7+ZCSwMpYhVlXHHP9tWx/VdrAArKQYOgNkx0VyFRjlbWJG6a0QtnEGzhshRf/59nn6JhZyhJxiast6OdiLO6JUi93imBLHU1yNFZGz2EOxxdK2T7UXZpLotPgU5nJ2UaERbYol4hN2iMLHCFI/tnF8wmNzwQfvOH/15aOkQsMfPubeqJH8dXT9gk8esXqaDHrH8EJaAuoCt+veaPlv+2G2/njlaony/o4rhyQ==; 5:cctdBf6xdOn5+dgft/YUvwN1WOG5M1SlFzuwosXV6r4eeVfRNbW9r/PM9IVz5Y8SAoXkRd6naY1oG4mwQXh7gDnA0uLRHQdE0HMCzLCrEnURi9uupqk4kZWSUuPK4OIWnPj/vmk72jKQG5HMCcFoBg==; 24:/CvpqwOItmla4b1adwZjsZ77INFAk+dYNfOeKv5FqJyBiJ8qU4UTPoCgI1fpwVdU7zWJGP/fhnzU2n2DOiJtno91SYZsnfmnj2+Xmi5MLLI=; 7:lMBjG991XzCXXaM9kw5wfkRZhz3Ml21cbOuNfQKdVoAl9ADnCvULo+oTYmSh2A6S9GHdZNPKqcwBBEh1IwAExLZ63CavxcvoufYvRD0D3cTIkNPEpMrCgK51u0vDr/DO1bBNIuliQ4uW2YPfLUFV+r7lM4JuBeefnPQ4cJgA5eH938Iudw8YlGnUTOBlUOeX2hHVJk18W54ZYNeFSmJwYi7pc/wdeRo1KB4V9c4RvJw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Sep 2017 12:28:06.8152 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB3318 Subject: Re: [dpdk-dev] [PATCH v7 0/9] Infrastructure to detect iova mapping on the bus 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: , X-List-Received-Date: Tue, 05 Sep 2017 12:28:09 -0000 Tested-by: Hemant Agrawal On 8/31/2017 8:56 AM, Santosh Shukla wrote: > v7: > Includes no major change, minor change detailing: > - patch sqashing (Aaron suggestion) > - added run_once for device_parse() and bus_scan() in eal init > (Aaron suggestion) > - Moved rte_eal_device_parse() up in eal initialization order. > - Patches rebased on top of version: 17.11-rc0 > For v6 info refer [11]. > > v6: > Sending v5 series rebased on top of version: 17.11-rc0. > > v5: > Introducing RTE_PCI_DRV_IOVA_AS_VA flag for autodetection of iova va mapping. > If a PCI driver demand for IOVA as VA scheme then the driver can add it in the > PCI driver registration function. > > Algorithm to select IOVA as VA for PCI bus case: > 0. If no device bound then return with RTE_IOVA_DC mapping mode, > else goto 1). > 1. Look for device attached to vfio kdrv and has .drv_flag set > to RTE_PCI_DRV_IOVA_AS_VA. > 2. Look for any device attached to UIO class of driver. > 3. Check for vfio-noiommu mode enabled. > > If 2) & 3) is false and 1) is true then select > mapping scheme as RTE_IOVA_VA. Otherwise use default > mapping scheme (RTE_IOVA_PA). > > That way, Bus can truly autodetect the iova mapping mode for > a device Or a set of the device. > > v6 --> v7: > - Patches squashed per v6. > - Added run_once in eal per v6. > - Moved rte_eal_device_parse() up in eal init oder. > > v5 --> v6: > - Added api info in eal's versiom.map (release DPDK_v17.11). > > v4 --> v5: > - Change DPDK_17.08 to DPDK_17.11 in _version.map. > - Reworded bus api description (suggested by Hemant). > - Added reviewed-by from Maxime in v5. > - Added acked-by from Hemant for pci and bus patches. > > v3 --> v4: > - Re-introduced RTE_IOVA_DEC mode (Suggested by Hemant [5]). > - Renamed flag to RTE_PCI_DRV_IOVA_AS_VA (Suggested by Maxime). > - Reworded WARNING message(suggested by Maxime[7]). > - Created a separate patch for rte_pci_get_iommu_class (suggested by Maxime[]). > - Added VFIO_PRESENT ifdef build fix. > > v2 --> v3: > - Removed rte_mempool_virt2phy (suggested by Olivier [4]) > > v1 --> v2: > - Removed override eal option i.e. (--iova-mode=<>) Because we have means to > truly autodetect the iova mode. > - Introduced RTE_PCI_DRV_NEED_IOVA_VA drv_flag (Suggested by Maxime [3]). > - Using NEED_IOVA_VA drv_flag in autodetection logic. > - Removed Linux version check macro in vfio code, As per Maxime feedback. > - Moved rte_pci_match API from local to global. > > Patch Summary: > 1) 1nd: declare rte_pci_match api in pci header. Required for autodetection in > follow up patches. > 2) 2nd - 3rd - 4th : autodetection mapping infrastructure for Linux/bsdapp. > 3) 5th: iova mode helper API. > 4) 6th: Infra to detect iova mode. > 5) 7th: make vfio mapping iova aware. > 6) 8th - 9th : Check for IOVA_VA mode in below APIs > - rte_mem_virt2phy > - rte_malloc_virt2phy > > Test History: > - Tested for x86/XL710 40G NIC card for both modes (iova_va/pa). > - Tested for arm64/thunderx vNIC Integrated NIC for both modes > - Tested for arm64/Octeontx integrated NICs for only > Iova_va mode(It supports only one mode.) > - Ran standalone tests like mempool_autotest, mbuf_autotest. > - Verified for Doxygen. > > Work History: > For v1, Refer [1]. > For v2, Refer [2]. > For v3, Refer [9]. > For v4, refer [10]. > for v6, refer [11]. > > Checkpatch result: > * Debug message - WARNING: line over 80 characters > > Thanks., > [1] https://www.mail-archive.com/dev@dpdk.org/msg67438.html > [2] https://www.mail-archive.com/dev@dpdk.org/msg70674.html > [3] https://www.mail-archive.com/dev@dpdk.org/msg70279.html > [4] https://www.mail-archive.com/dev@dpdk.org/msg70692.html > [5] http://dpdk.org/ml/archives/dev/2017-July/071282.html > [6] http://dpdk.org/ml/archives/dev/2017-July/070951.html > [7] http://dpdk.org/ml/archives/dev/2017-July/070941.html > [8] http://dpdk.org/ml/archives/dev/2017-July/070952.html > [9] http://dpdk.org/ml/archives/dev/2017-July/070918.html > [10] http://dpdk.org/ml/archives/dev/2017-July/071754.html > [11] http://dpdk.org/ml/archives/dev/2017-August/072871.html > > > Santosh Shukla (9): > eal/pci: export match function > eal/pci: get iommu class > linuxapp/eal_pci: get iommu class > bus: get iommu class > eal: introduce iova mode helper api > eal: auto detect iova mode > linuxapp/eal_vfio: honor iova mode before mapping > linuxapp/eal_memory: honor iova mode in virt2phy > eal/rte_malloc: honor iova mode in virt2phy > > lib/librte_eal/bsdapp/eal/eal.c | 33 ++++++--- > lib/librte_eal/bsdapp/eal/eal_pci.c | 10 +++ > lib/librte_eal/bsdapp/eal/rte_eal_version.map | 10 +++ > lib/librte_eal/common/eal_common_bus.c | 23 ++++++ > lib/librte_eal/common/eal_common_pci.c | 11 +-- > lib/librte_eal/common/include/rte_bus.h | 35 +++++++++ > lib/librte_eal/common/include/rte_eal.h | 12 ++++ > lib/librte_eal/common/include/rte_pci.h | 28 ++++++++ > lib/librte_eal/common/rte_malloc.c | 9 ++- > lib/librte_eal/linuxapp/eal/eal.c | 33 ++++++--- > lib/librte_eal/linuxapp/eal/eal_memory.c | 3 + > lib/librte_eal/linuxapp/eal/eal_pci.c | 95 +++++++++++++++++++++++++ > lib/librte_eal/linuxapp/eal/eal_vfio.c | 29 +++++++- > lib/librte_eal/linuxapp/eal/eal_vfio.h | 4 ++ > lib/librte_eal/linuxapp/eal/rte_eal_version.map | 10 +++ > 15 files changed, 311 insertions(+), 34 deletions(-) >