From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0058.outbound.protection.outlook.com [104.47.34.58]) by dpdk.org (Postfix) with ESMTP id B39F02BAF for ; Tue, 5 Sep 2017 14:30:52 +0200 (CEST) Received: from BN6PR03CA0061.namprd03.prod.outlook.com (10.173.137.23) by CY4PR03MB3319.namprd03.prod.outlook.com (10.171.247.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Tue, 5 Sep 2017 12:30:51 +0000 Received: from BN1BFFO11FD001.protection.gbl (2a01:111:f400:7c10::1:101) by BN6PR03CA0061.outlook.office365.com (2603:10b6:404:4c::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10 via Frontend Transport; Tue, 5 Sep 2017 12:30:50 +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 BN1BFFO11FD001.mail.protection.outlook.com (10.58.144.64) 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:30:50 +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 v85CUjWX012139; Tue, 5 Sep 2017 05:30:45 -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: <47fa2123-29cc-a7bd-b29c-a38f3437ec9d@nxp.com> Date: Tue, 5 Sep 2017 18:00:44 +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: Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131490882509597044; (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)(377454003)(189002)(199003)(24454002)(7416002)(53546010)(6306002)(8656003)(81156014)(2950100002)(189998001)(77096006)(50466002)(229853002)(31686004)(76176999)(54356999)(966005)(8936002)(305945005)(2906002)(8676002)(81166006)(64126003)(104016004)(50986999)(65826007)(105606002)(5660300001)(106466001)(356003)(54906002)(33646002)(86362001)(31696002)(5890100001)(230700001)(53376002)(85426001)(23746002)(97736004)(53936002)(498600001)(83506001)(626005)(47776003)(68736007)(36756003)(4001350100001)(4326008)(65806001)(65956001)(6246003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB3319; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD001; 1:ClzQYgVTypK/wZ9JUjZgHbB6jYH0EU2WfpPwAi1UzY3PhCzIrIkrn2Su5++jnuDvPz8CAtJMASoCbD8930SKBtgKmOA8hmuALjHq+qLvmkHPdhjUqAWp/Y4xl+3yJ+FR X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 39d6b093-248d-4a73-8813-08d4f459f1a4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR03MB3319; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3319; 3:mpTPbnwqk+4JA9TdSjO970VjQk3Y5AyiKguV5K/pVIORavU8XK+x1lVCoj3L2b9LPWznsEsLEsp6iU3yjymy8J7nCmoRwtfXXVbHbzA5dI5x0mwxI47Rhctq6PEFhc9QYHe6C4jKQQVhhask6s9i2818DYPRyEAL7GbL4y7GXpafCbvQRBfPyJuaww4lDwsPhbEIpgSCpzPQgVjrM4E7AuWCHU949sC704irnVjQSxFfgNx5UePYSD2iPS5RkK4sWM2EGjnZYqj3/dRnCSTLtYS4bUzy27UzaL3YrpOgj9XeIRl7zjtP8wvfx2prdR4DxT7qFP4dt0XQUNGO24XlILVlzAY2Oq6TWLPFo5jYAn0=; 25:XsjL3b1qB8zdGNSN7V8s0H/X9xrq6MtaGJdHc+9147Op+FAX25VC2kHDAzSAoY6c5XlruWPGEirdP9Qiw14J+ovXiUtGjgHjtvV+1jFkdyBIz9L9G3bn3amBdWsPwNe9MdBLsWih7oFraAhuXvOHSsdbMpf3UiQcU9hRP47hZH7HGWyNJcUaYf0zJwNUqZnWaC2Nj73e9WQjac3gppFZGqyHEcSTP/Nxm31N3WWjhaLB306D2tZ0QtkEF8HPfjNU3Nj1YeMUioEGsFYzP4scp12ElPdielljBz32yJkR6oFJaxqL/Uo0stAkcHBn9DMYHdcUOY2o3CrDyjDJX4b8QQ== X-MS-TrafficTypeDiagnostic: CY4PR03MB3319: X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3319; 31:UyWCZkHk2UmhqcCPtPAeie1DEwMkz5WGrBI4i31Q9i73Ko56yMld9lQsdVFY3v5+saTC4lIaRZai7yPGfwsww/+XCk7rPj4v7TNa1jkvTAVXoxBCijUyCsbbB5syX0B/JBAj5qam0eZXdQIaIOfVcVSqXkmAQecKl7VNpy+5Jzg3+86AkDCsTWfTMTT7KiSi8bAmrQvxn0MQmzr7ba+ygEGYD/4zgQLwykZqNoUgtMo=; 4:RXFkRBy8dVZeuZ/ov86G0aAEvq+1qudUquy6IhGJspk0GvN2zmbaYjpX8nY5Ies64amOzAs82PyUA43I3AME77oPFBRWF0DUv6qrMaJY39IBPogmzulo46kfMFqd0Pli7D+Z9Leauv/GO0aRGepSsjkWGlk8S3TLMknYURwRzfipgGM5DGo8LIBLQdllPC6MpxabM8V+XgZ4ELANwwnW3gG5VxAv6crLDxJRKKgwoybSWj4qhT/Fx2u5JOgpZWFD80iDV5QlLh88VtLpDm7uqQG4yvV1n4IFGYV4LHGTOl2D9dIK93UniLX1KtPKTJQLkoXJHSfg3z1GXck7lG2KOg== 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)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(3002001)(93006095)(93001095)(6055026)(6096035)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123561025)(20161123559100)(20161123563025)(20161123565025)(20161123556025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR03MB3319; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR03MB3319; X-Forefront-PRVS: 0421BF7135 X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR03MB3319; 23:C9iR1+AObwq7BBkjcWNQ0u2pIG1hj+qAXn7wj?= =?Windows-1252?Q?bBd8ydG01c6ixh/C5C6TJUjtVy6eRGww5K6V/G4sS1iwaNXMzCdG7dlK?= =?Windows-1252?Q?AEhS0+ycOeKUr9K4kiMuzEhpYQFKZqcvpm7ho8JXFwqoROy9Q2So7hmS?= =?Windows-1252?Q?9QwOn3MhpSPkyEaA0g0xkpSG1+g+LeXy+kDGOwPCr292N6w3Sb/bGGWl?= =?Windows-1252?Q?GdjXaBa/wjAcFMq8ulv80bWb0Yc5//A7W8dlFeHVkRn3tYI0Z84DC/pJ?= =?Windows-1252?Q?fe6IAjOP3bDI0Df2eLYmM+dfuPEPXVfPQLl9J6vEUZAcYczwwQ3nPhjn?= =?Windows-1252?Q?HF2Ldh9YnDfdA540pcyOATMdCwQ2nteWeaOFWoyyZgaGbwdeR4qI5VmX?= =?Windows-1252?Q?bPrVUUeTB2IabijfXWacBHVHQ7FMfX1qH0oQWi0gHs/xIkdx9+2aTMEx?= =?Windows-1252?Q?n1FpL8iiFXoKJj8m4HPtbg2tBpQUgcyll2nbyoGTd8AQedrU5cQy0CJb?= =?Windows-1252?Q?VDFe1vBOJq4Smg1iiRYJZ/94y/eCKrA+TgjsNMYzAKxRK41EndiXYVsl?= =?Windows-1252?Q?+vNvHpHp/+wdD24I0ZA9CFUlDgyNESl1p0iSrCqmXjnQDP8UUNrv4AvP?= =?Windows-1252?Q?J53KpKcBvE4nsnvTMN5npo5sOlhTPUVsycXPhSgRPv2jADe4T0Pzq8O3?= =?Windows-1252?Q?1SvPnZ7mBHeKfSuIKnwHG88nC10LXayao54x8SLQzTOzKTpuCdNqS0D3?= =?Windows-1252?Q?aOaTHWftjP+nQJOLhm1cjsYmI5rcjG3T9OJm8r29CN7q+ZHm80TxMdEf?= =?Windows-1252?Q?nJBKf35SaMBIQjcv4xxLcmTt3hkJ8x8k9UZXbKkypOtvGBfdru8wFsA0?= =?Windows-1252?Q?PWmSLRBcGOO0m+JVnks7ccmgO2e/Z0H3pgB/klj9cfJ9KnC4SLkCykmt?= =?Windows-1252?Q?fg90K0OxQ4iEcriDDwo89QZw0kda7sViYF+tpKAiN0BzvF8Mhc0/ktaG?= =?Windows-1252?Q?MyUk1rIKEtt8mMmJK4+9UiUdQIJVlGYfKwHHFVuaWxehA4WqO9K33jWY?= =?Windows-1252?Q?O6oalQNoatyzki3kGV+q1RK8BuMTMmsA2BwglZgXPd7zOc8XNz/7sq8P?= =?Windows-1252?Q?hWYxmjyPcNKz+l0HzPSP1hhwAdj5HYgg4ejLQOTfcdz2SKSG30twTzRd?= =?Windows-1252?Q?Za7pCAreT/fEhU0xAIvAS+vV3VhRB/Xtfwsx7ihNu9KMOFT45v+ZFhWh?= =?Windows-1252?Q?aUDKcfKYO1cW8CFbZgKztdNRUYiAk6EN484xgqqcTRqJtO5e2RSzDU/J?= =?Windows-1252?Q?W0gTvG4xEnj8GBEyXW/ZjMRuN6hDYpsdxVwakJvBQsTOglEbXHNzG9jA?= =?Windows-1252?Q?jk3V1DGD/iKyDiviNQSzDAdpMSNnpbmf9nnB088Fy9iQ3sm7WOkDUb/8?= =?Windows-1252?Q?jFxKtZnlvzGTdbe4glpVZjK1HOmNhojGjK/Ol9WRRI6rgjpiwVy/P7ps?= =?Windows-1252?Q?NaM1xyXKdpRhWnIaGbv26lanyoVxlti4QtCiQxK5ab5d+UNxnEw3S4SP?= =?Windows-1252?Q?p1CscyfkwkB+9k=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3319; 6:7EAAXrrNCmk1b+nQRCgvT9zqVvOctflo0f2/ikaDkVVhgRc8xvS1TkiFCAq5awxrgbdSlmCPEP/moSmmduOiE3RXAM0dlZ1wi9YE0ZXZZOtvoRdIfb8PAnTLuwBJTc1wtgbeaqtrd/KpmKAQHXreBwdovkAKnXXeqRmBUaxv/HoYNOHV+q/X3J7KVN+I+QOhL5HnOt9XA4opxqNSgGlOzTWbCyilT9faelRBMnqstKCDKIe0BDN63WqWz2exzI6ADRO9JoD+mQpHHGr4IdvrHiJ211iRKeHbCGoHWczNSqEGsT2ajE6wC0dSUWjiGlUmlympayWdwu9wOJ7UCxpLeA==; 5:d/fV/4h7cYYFsOt30bzqrkcNJBzYYJWrMxLM3+5yDC7DtJ5YMOZhNqMzyPdjN/Fgx+CC2tFBBbpN7o64hLM6TVmVI6aB57WloWRM8rZSzGwDWlBRR42klJwOc/tJeJpzNh0rZMld0c2lFhuGcrjGyw==; 24:tYSpvrEnbOTov0cBniqApP4eN68OwhQjOIpAm2TTwxP62yOwhwLwVlbo2uOdWMSb8NUMQvYvq4VnmIbopjspZErSZkGD+5uJ+wGHCs+UfgQ=; 7:GthzPaIXw1kdg6wZrGrdIGBkuUK6gmSYs5NGHcXBbPZXt5m98NjnjYZhhTHiWLaE3hFrj1MnoOi7hyge031NP++3YPeK+a3CwPVAJSS2Ir+DrUvJXusf34OrQv3Fm1xO8MiVEonk1INJ2eKt+QrQx01/SyYDh0SAiJggsBjhrU57ZdhOHDDi3eEsyDqvKsmoKcCel+L1Jij6kdlGZf+ERMD1HVQDsFkbxSsjb4ihAT0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Sep 2017 12:30:50.6945 (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: CY4PR03MB3319 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:30:53 -0000 Please note that this series break the DPAA2 BUS. Following patch series (Shreyansh) is required to fix DPAA2 bus working with this patch series: http://dpdk.org/dev/patchwork/patch/27950/ On 9/5/2017 5:58 PM, Hemant Agrawal wrote: > 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(-) >> > >