From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50083.outbound.protection.outlook.com [40.107.5.83]) by dpdk.org (Postfix) with ESMTP id 2668E1B104 for ; Tue, 9 Oct 2018 13:26:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0sBrtQ3xZhra0l4VZ7q7jcJTG7iwSTHo98+Kttk05Ok=; b=qyVRKg96Nc/sYl/YIZid0phQ/vPaQYiP0CGXTM0b6dweLSIcWVui6hfEFJLNVeNaEScTaRCyxlNxU7dH2VEd9MSdyV5tHMLlczqRLFlYJuoRLXkIqY77GP3FbMT5dbGnsu9RaCtIUE70kjXObqi+5C7WthFV+xb9WA8v7Wq00qQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=shreyansh.jain@nxp.com; Received: from Tophie.ap.freescale.net (14.142.187.166) by VI1PR04MB4686.eurprd04.prod.outlook.com (2603:10a6:803:71::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1207.27; Tue, 9 Oct 2018 11:26:43 +0000 From: Shreyansh Jain To: ferruh.yigit@intel.com Cc: anatoly.burakov@intel.com, dev@dpdk.org, Shreyansh Jain Date: Tue, 9 Oct 2018 16:55:43 +0530 Message-Id: <20181009112548.7025-1-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180925125423.7505-1-shreyansh.jain@nxp.com> References: <20180925125423.7505-1-shreyansh.jain@nxp.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [14.142.187.166] X-ClientProxiedBy: BM1PR01CA0097.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00::13) To VI1PR04MB4686.eurprd04.prod.outlook.com (2603:10a6:803:71::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ad47fb6a-cfa4-4b46-2a3c-08d62dda17fb X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB4686; X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB4686; 3:W1gbA4vLdMARiZnTxPGV7+rU1G1GhuWZe8UCVbCiEv89haBNiOIfkVjseeK98zIZv6+QwIeRm1bXPMg3If19jAnTzBAAIPh4857lgrbQnGV+cKjhyTEtjH6Mp3m8GvePKZpOqra5QPM9mOMaw7HkTDja78BrBhBze8IoY+lMvN3+352XGIpZRRPWmq0/vmjhxz90Rlmox66xfo51PJmDU7f2QpKp1I0xZ2e8vWNMDftzMkdeZFptmalzg/FdVNzg; 25:DKqhGwAG7yK0mii+O+7kdnV2PmRogBB0lajTDZRpXEvV0NpzaLaKrGsmtLA4buHzSl4qsFbTYi0txzCLNA68w8YPK9YMRmIqb+mAYwcVZtQfPGBKXecKwyuLLUNl1/b8FETaVo0p5giE31il+xueS00xvzvFki2p2B08/MWFwKrFuhHKQdlWbUSwwjDVJWGQjCWM7DAujzHqJ+Q0elC3yfX7RAPNT+LkAw4Xwk7tMikQx1Mt04sjQKAJz8yeiJkHpyvZLtcy3aJWV0pZz1Drn7KppSHNRTewgQHCdqT/YZDjX+jnjV7XkfaWnTcYcO+AcQy5GxQSfdnbOBvdzT3rfA==; 31:5eWA1W/fDxZCiULK25JWWWPP6o2CsdWkcipD2t86YepNTE5NLkcS9dOBQTANT/DJ8wYQgkcKsqmQ+Twe/YvGY0GmY8871cqkvMhI/ba1B+DwL/VTbtibAsNQRUtKFfAmUyCfyZU8TNRwSYD1AVpgCziDNTjxBpA7i3iqGPj6/gHJGz6zvuZhyIuQ4AgPxpeftAxg4VQW9ZWsHHb5ibEhwbkszVSPSIH1Qi7Gz1bWqUw= X-MS-TrafficTypeDiagnostic: VI1PR04MB4686: X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB4686; 20:HRIi6SBTzsGxoey+0Mg5oYjK78g6ykF4GnwCYrCscSA13RLFQw166u555i2aSlplhjDRfzordC4eN1FF7pNerymmwnNh2oa3MFoh37uuG8cOY/RQGJKWbXs3JTJjkih+UMR7pqChPMwkom4GatWKAdh/ziwCa4593stq/IyV1mNOtpHrKB6kSLkhOKtovyxL6aAEZZbPl/Tm/onAv+T94TJiECTfRvU9ocOZ3NzqxDOaZzUnqJlFhwd43VzjDvHyDXS8WMrRXdSuoyZ82M9Sje7gvS02WxxQMAtJ+GvvocmY1eQzM2oDgPJr+V0agt5DQtXAvNbplsmsZ4yZEqdgWGC55Rm84KpZiNUf9GnQbHcIwhlDQTWupz58HRsJh7y7Ll4aBZ+EWnPEp1ROrHySLNZSrVl7dQMzhyooltPbjE5K6BW9ONvOwohyeuQTD/qp0iWVPqfDagr37QdnZTNaIUyO4128tVM7O238WJPeVAdFSNqmvxhmRBzM0eCEULvI; 4:BEY6YNGdK7noZBQnZm1QW8XDa1i204nJn3hHhh9RroC7AxRfAXCVznXuOjHVtF657rj7UR3Lahm8bjc4JsN2uTahkZKQrzx4akefCT39AkDhOzqDM5f73W4INa6e3iP9gn8FUMpeZov2ErDIuFW3Yvasllca02RxHoXnF/iiKA0dOmXf6uMeSlTzNxNp3RX+Oq4K013iFo7nufGVIEUDExwsFmRXLd4jTi6kdGQt/WXnA7dlGrWCPXwNcKe6jzyJwRSn6UypBEac8svTVd5QEy9u+zltWf4+jc+Fc0NxPnxRvg8EuyajrevfhXFYpzsNyGkx1xzrTI5PKc21cV9WKSKWVV9h/jjax8ajnVbJ3TQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(211171220733660)(275809806118684); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3002001)(3231355)(944501410)(52105095)(6055026)(149066)(150057)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051); SRVR:VI1PR04MB4686; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB4686; X-Forefront-PRVS: 08200063E9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(346002)(366004)(396003)(136003)(199004)(189003)(2616005)(476003)(6486002)(446003)(1076002)(8676002)(25786009)(50226002)(81156014)(4326008)(81166006)(6512007)(956004)(97736004)(11346002)(386003)(55236004)(6506007)(86362001)(68736007)(76176011)(50466002)(486006)(51416003)(14444005)(16526019)(8936002)(26005)(48376002)(44832011)(52116002)(53936002)(186003)(305945005)(5660300001)(478600001)(105586002)(7736002)(2906002)(6116002)(3846002)(106356001)(36756003)(47776003)(5009440100003)(2351001)(316002)(66066001)(6916009)(2361001)(16586007)(110426005); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB4686; H:Tophie.ap.freescale.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR04MB4686; 23:JV2ju8BoT0xpoXShSgqTvq8t6Nuo0xZhh/SCcALB5?= =?us-ascii?Q?Xr9mM3SwMbBRWDTqgprb/VgfEu7W4zfNJIOcN4lrJwrUhjgTaBOzEQmK49mO?= =?us-ascii?Q?aoL9xrW5v7htQEkqz0xZ+PKJ1djcmZxXspMWNs1XC6AZonEmUIMG8m7t9h77?= =?us-ascii?Q?BTAAkOywfj4lNAL1PWMNHgFEa3IkhdXlqvyKfV/hVMRsCv0X+VR/3p4OM38B?= =?us-ascii?Q?Ts8lLleD8v6iJ/J/HcRSA2Q+3nk6iMvdj7hOX3uCNaZTd/0qHGRU/RegMjVf?= =?us-ascii?Q?4BIXE7a0tDWPAnRKFZctfuwIhQcr6TQEtgBlRzJaPyvO7oMfKvrcCFlxjVqV?= =?us-ascii?Q?RhFU5I3XvcRd3B5bRzCL9/5eV/PJ4wW6fOgyNYxWBha2IulRpNFnEwZycGQo?= =?us-ascii?Q?89Uc6HzG+w5xvg05aYJYEHycWexiZaUu30D4J4LwcGzrC+/fQJJSqN8Xrd4a?= =?us-ascii?Q?kYYaZ464H79JOiociUA4Md/4rLf7ZrvThREJAXgcy7cRRmiX4YE3P+zttGRz?= =?us-ascii?Q?38UkflhNdtQ8CH5bXzJwzCFyDrDXT+dlk2TGfl8CS+Md4XSjunQk3yNU/YhY?= =?us-ascii?Q?Oz7uRc/aN72iRVM3bPpEtSpMVwHUPLEgZXJKQVRjQKhmxDmIsYW2acFN9qzO?= =?us-ascii?Q?RUWE8SuVXDUAqXlo4csF2+RppiH3T4jW0d3atbL0auUaBrDWOFvfPxuFJfQR?= =?us-ascii?Q?fH6z6eagLz5caAZYDvXvXI8MJSy0Zs85cszVWbpKNYy+Le/ZNuKqVqcI668j?= =?us-ascii?Q?fFCcyX3mnRp/mXlcMueI1Sj/DaROuT7pAy+OCDJzrY+6lzfbWz4i12Y5GGiW?= =?us-ascii?Q?+qrIu1oqsAteO6yzGcIHiYxRYqIKcJx7gVdfAU+78aX1TTvtg0QmuJg4j3P3?= =?us-ascii?Q?5kqy/pxxsGu0h7kkTEN4ph1W07OSZ8JVBLrsCdMkr5C5BjdUYmh5wAktJIgT?= =?us-ascii?Q?nT+1BFEeKbO9nrBzxN/2IHSydBxDfaQqk7OCLZb3SV/i4FngONdvplqd0C62?= =?us-ascii?Q?drCnzpXcG1yI9ek1AEjYoxMr45kL5lRQZlRJ1Eqn92LsyskmKbeOypAkg20z?= =?us-ascii?Q?loGD2VMZxXq1kS7EVL2hezVhMI601oY+x/Wvb0b/qYezAkVitkTYiFvZ+bsH?= =?us-ascii?Q?R2uxvj9VbKisBSPcyJDnYBvWQX7Zf0EtHSK/O+l4ZDhdRzJQWDihKqzlbYLE?= =?us-ascii?Q?yc+/nQAkXHBKEMnCabvmbcvtvTr6gAqAlhBcv/NpmSpUeqGLalCV2IyUwB2N?= =?us-ascii?Q?W8NyKPLJz7LFAuvNQSLdmT6FRIdC6BHAyvT+/vZDS5gMpUnJjR8kHXiNgpHY?= =?us-ascii?Q?qkjvhorKo3G+41YN1VedKg=3D?= X-Microsoft-Antispam-Message-Info: SCn57IBRQyQxT1aiHbwez0P71x/vPtPLThOdXBDjegJciKV1OJJ9JBHj6noFSQdaX6WzQhQcOV27hyJHPF74LaaW11xYjQzFMvHX1e+MCeBbhUwlkB5Lg8xbBnW52Shxbd9nN39YdU9PCLt+ajsHx18bjaQX/g0e8uwuHSeqrp9Hp2nhLTvHf9y4l/0e1XVGIoYMa9Ru18fVY+eXraKc4L13uBYQ4/YuFfICu9Tyyqs1qAd4AOn3Py2YxuDuPWJ+sd43qTVpXzhh7Lr7RMkZRc0z+cR5/2lG3Bt+6DMndcdlrtxkxRdmPNj8Fca895kjORbUC44jf+EPTiRj5kOZnAGmd+CC9J7z1xXSZieaJ8s= X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB4686; 6:+TqbTRYydXNtTklTuEXA20h0fTK6o00HrkFrYYxzMpr5b3MUgDbGLBN4UzUI73G+HgSbFmZvyMA0P1x9TXMhkaJ4hQV7dBqJNnq3R7ywbiT8YXSWJnUWxazPXTNy/SKeHY051ntX+TAshbRNKHUHGTt6X5tdvMgPDsWNT2Bz+Jf9Bk/4L5cN5xsRjQSWlUvQgLtmH+XYchbhowrl24g86tsZA6gBBacbBNex+Kkei0wmfBK6ZgpoCjDlGXF0WO1ncvMoYe+/j3kLnbYR1rMUrNkMcCXIZjNFfpST8wIfbiIwupmo/MoM9MMucrW/JsX5CYAlU3YjQH8c+YtQOYR4pM3nljOoG9ZpQ8sqG0jWQST2R/H9uLPVCeiYDzFjyvND2TqsoJPrH+352yf0S5DmkD44wXRGExt6p/IUyzWd+tDDzbChw9fYf0FDDhgh6VqD1A0LMM/GFbgqnpXiJPPLgA==; 5:cmsVW97xnsJ9EAAAUFseaLBTX32W2nQuPAS3N9yiMk2D097aQ1U00gurQyq64VNETP+GXaNTxxvHQmxwt1/sALCSSawAAsTikmvx+j+nHW/Lkd5eTbVjVvhnrRXwKfToevMG+umOJzWFrTX1YQwhto7dwtPGmcdxfXO+GGf7Lc4=; 7:vUHroAKCyXRJOjBYvQhFknWovLcOb4wbWWRyofDj8MM6GgX/SscKtGnvsgqvyWKC2oXFs1qrYyzfoAN1qyAYfLmfm5zbxu3+ngLifcbbpYavQa5QMNBl5lqZO/4ew55dF7dT+Kf9cJcJ5m9hx42dJXQYW/PTPTDwJGsk05LYM9SfW4ZfYf312oJut1zY/IlXzhkP1C+eKtn6lhyDsgF3AwmEobwmXETQr83NGh1TLRO8N7aE4uQv7lFBO2UVRlOL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2018 11:26:43.8394 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ad47fb6a-cfa4-4b46-2a3c-08d62dda17fb X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4686 Subject: [dpdk-dev] [PATCH v2 0/5] Add a PA-VA Translation table for DPAAx 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, 09 Oct 2018 11:26:46 -0000 ::Background:: After the restructuring of memory in last release(s), one of the major impact on fslmc/dpaa bus (and its devices) was the performance drop when using physical addressing. Previously, it was assumed that physical range was contiguous for any given request for hugepage memory. That way, whenever a virtual address was returned, it was easy to fetch physical equivalent, in almost constant time. But, with memory hotplug series, that assumption was negated. Every call that device drivers made for rte_mem_virt2iova or rte_mem_virt2phy were expensive. (Using IOVA_CONTIG is an app dependency which is not a practical option). For fslmc, working on Physical or Virtual (IOMMU supported) address is an optional thing. For dpaa bus, it is not optional and only physical addressing is supported. Thus, it impacted dpaa bus the most. ::DPAAX PA-VA Table:: - A simple table containing entries for all physical memory range available on a particular SoC (in this case, NXP's LS104x and LS20xx series, which are handled by dpaa and fslmc bus, respectively). As of now, this is SoC dependent for fetching range. - We populate the table either through the mempool handler (for mempool pinned memory) or through the memory event callbacks (for cases where working memory is allocated by application). - Though aim is only to translate addresses for descriptors which are Rx'd from devices, this is a generic layer which should work in other cases as well (though, not the target of current testing). ::About patches:: Patch 1: There was an issue in existing PA/VA mode reporting being done by fslmc bus. This patch fixes it. Patch 2: Common libraries/commponents can be dependency for the bus thus, blocking parallel compilation Patch 3: Add the library in common/dpaax. This is a single patch as functions are mostly inter-linked. Patch 4~5: Add support in dpaa and fslmc bus, respectively. It is not possible to unlink the bus and device drivers, thus, these patches have blanket change across all drivers. ::Next Steps:: - Some optimization are required to tune the access pattern of the table. These would be posted as additional patches. - In case there is any possible split of patches, I will post another version. But until then, this is the layout. ::Version History:: v1->v2: - Rework of review comments on v1 - Removed dpaax_iova_table_del API - that is redundant - Changed paax_iova_table_add to paax_iova_table_update to make it more relevant - Previous patch removed an advertised API (rte_dpaa2_memsegs). This is fixed. A deprecation notice would now be sent for removal in next release. - Rebase on master (5f73c2670f); Also verified on net-next/mater (317f8b01f) Shreyansh Jain (5): bus/fslmc: fix physical addressing check drivers: common as dependency for bus common/dpaax: add library for PA VA translation table dpaa: enable dpaax library fslmc: enable dpaax library config/common_base | 5 + config/common_linuxapp | 5 + drivers/Makefile | 1 + drivers/bus/dpaa/Makefile | 1 + drivers/bus/dpaa/dpaa_bus.c | 4 + drivers/bus/dpaa/meson.build | 2 +- drivers/bus/dpaa/rte_dpaa_bus.h | 6 + drivers/bus/fslmc/Makefile | 1 + drivers/bus/fslmc/fslmc_bus.c | 24 + drivers/bus/fslmc/meson.build | 2 +- drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 21 +- drivers/common/Makefile | 4 + drivers/common/dpaax/Makefile | 31 ++ drivers/common/dpaax/dpaax_iova_table.c | 456 ++++++++++++++++++ drivers/common/dpaax/dpaax_iova_table.h | 103 ++++ drivers/common/dpaax/dpaax_logs.h | 39 ++ drivers/common/dpaax/meson.build | 12 + .../common/dpaax/rte_common_dpaax_version.map | 11 + drivers/common/meson.build | 2 +- drivers/crypto/dpaa2_sec/Makefile | 1 + drivers/crypto/dpaa_sec/Makefile | 1 + drivers/crypto/dpaa_sec/dpaa_sec.c | 6 + drivers/event/dpaa/Makefile | 1 + drivers/event/dpaa2/Makefile | 1 + drivers/mempool/dpaa/Makefile | 1 + drivers/mempool/dpaa/dpaa_mempool.c | 4 + drivers/mempool/dpaa/dpaa_mempool.h | 4 +- drivers/mempool/dpaa2/Makefile | 1 + drivers/mempool/dpaa2/dpaa2_hw_mempool.c | 29 +- drivers/net/dpaa/Makefile | 1 + drivers/net/dpaa2/Makefile | 1 + drivers/raw/dpaa2_cmdif/Makefile | 1 + drivers/raw/dpaa2_qdma/Makefile | 1 + mk/rte.app.mk | 2 + 34 files changed, 743 insertions(+), 42 deletions(-) create mode 100644 drivers/common/dpaax/Makefile create mode 100644 drivers/common/dpaax/dpaax_iova_table.c create mode 100644 drivers/common/dpaax/dpaax_iova_table.h create mode 100644 drivers/common/dpaax/dpaax_logs.h create mode 100644 drivers/common/dpaax/meson.build create mode 100644 drivers/common/dpaax/rte_common_dpaax_version.map -- 2.17.1