Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752938AbcK0QCs (ORCPT ); Sun, 27 Nov 2016 11:02:48 -0500 Received: from mail-he1eur01on0068.outbound.protection.outlook.com ([104.47.0.68]:59390 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752225AbcK0QCi (ORCPT ); Sun, 27 Nov 2016 11:02:38 -0500 X-Greylist: delayed 22324 seconds by postgrey-1.27 at vger.kernel.org; Sun, 27 Nov 2016 11:02:38 EST Authentication-Results: spf=pass (sender IP is 193.47.165.134) smtp.mailfrom=mellanox.com; nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=pass action=none header.from=mellanox.com; X-IncomingTopHeaderMarker: OriginalChecksum:;UpperCasedChecksum:;SizeAsReceived:1474;Count:17 Subject: Re: [HMM v13 00/18] HMM (Heterogeneous Memory Management) v13 To: Jerome Glisse References: <1479493107-982-1-git-send-email-jglisse@redhat.com> <5ba45b16-8edf-d835-ac04-eca5f71212c9@mellanox.com> <20161125161627.GA20703@redhat.com> CC: , , , John Hubbard , Feras Daoud , Ilya Lesokhin , Liran Liss From: Haggai Eran Message-ID: <28120b19-8167-2d27-0f59-f2ab27da2897@mellanox.com> Date: Sun, 27 Nov 2016 15:27:11 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.0 MIME-Version: 1.0 In-Reply-To: <20161125161627.GA20703@redhat.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.0.52.254] X-IncomingHeaderCount: 17 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:193.47.165.134;IPV:NLI;CTRY:IL;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(24454002)(199003)(377454003)(189002)(2950100002)(76176999)(6916009)(110136003)(229853002)(23746002)(4326007)(4001350100001)(81156014)(47776003)(38730400001)(107886002)(83506001)(551934003)(81166006)(230700001)(8676002)(8936002)(2906002)(36756003)(4001430100002)(356003)(86362001)(54356999)(31696002)(65956001)(106466001)(31686004)(39380400001)(50986999)(65806001)(6116002)(7736002)(626004)(7846002)(5660300001)(50466002)(33646002)(64126003)(39450400002)(77096006)(305945005)(65826007)(3846002)(189998001)(39400400001)(39410400001)(92566002)(3940600001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR05MB1891;H:mtlcas13.mtl.com;FPR:;SPF:Pass;PTR:mail13.mellanox.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD009;1:2Wat7t2yExjj5N3HjDOuFnruqr1UxMDJVHU23IteWa/Q3CZejGqtyfGE8dS0zSONKjtTVE6G7vCYYiVU06edo/f9rIihz8dmxGEWacvoTpZU+UPcK4y30SnTYscjKAeDkznq00eCMchR1a+B7mm1M5ACemGp1N0p2ywj1ApAaZHx/DWqTpDYUxF9uL5Y3L2ew7TA1P6/V5uYxipy128eArmEEMypFyVkdzOWLa/8r+kUSBXLZSsAlbe9hZvwNs82sy2h663OK1RSfCqJ0YFEFBeDNPRAHHlzLt9taEsFJjSinxPCmI++k4KeMUQYGCuNuh+RgO7YZGwO1kpleQpuCxZDkIRX0LGbjMs9jyroVNPblDpNdUNZGaSucYAWikO6JYe5dARUJS9/Mu8IVlEaYa/CVNo6HqZyQq8aGcuF8lrwMfNSRRsVi80cf0366VvFOSkIIer/lvk8fvmh18G/PVy6eW7gHYDgq5f5+2ABTYPjiEGm9whSCOmwsLMXA8TY9sLzfp8VaJPxAYuGSC40skcK4el+IbGEBM8Hiovm6AYK2avSoyak19+XHt08hI/v X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1891;2:t75YkPuR/ZTvPYIuGSwb6e+Y8ydHms5mYMfILSHQvEd7H52kd4NJvZLlRRWS8OWtqhBcaD3F8T9rwbLbnOu8cF+xEiIp0t9dVzXEjyYW7twAikl3md/W7Wvd+zgVOJlcM3v1ZBX8PgR13IaghfqE5+ygnkT1JYREn+hVdFsLAs4=;3:nDZB1X31TmYDxEFXE1SBiAOO28cWUPaRQFVWFeUGkIP9mziJ01xcwLJcfDBvTRjFsDk6OPPqy4gfJ8v3UoU6n0r+Ryq0N3saTxxduZZOQB6dCvdnYrqpGXuOH0KI7+Hulz5mm5yGM4/9sMROpJzJJx1IsyLiXKfXAAhALIa6+ZXXyF8Hvnk/X52LrGe5cL66bkRghhAzV+mwahGxb3h5TJrQt99/OH3VeuVtLzxCENj5GN+mSNxmAW/NlItnfK/JJlUxV5Ukac7sMMw4Vsal6nOlpUbLEjwHMdMlKxaP174= X-MS-Office365-Filtering-Correlation-Id: 98d29b70-5398-4eda-a1b5-08d416c921a7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:AM4PR05MB1891; X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1891;25:osGHGt0m4LOVnOtb2DG2Of9TJ/6yNJxSlyJ1YnBAW7hKnRK3gXg9yIfoE8HuyMqZFg4Fvxed18aIHZCv+HNIGi+1FlX8lNQPIvCRpWRrS+7Sft59YMUap4N64OXgWpsWgRFddvpnO3o30b/uDtygNtGyU0Pp3CO9cqHb8Jq64FDN0ZLK02UsXk3fc/Wz5wUdr2IuyL/YBmQm5JoFhaEAaYajtCDu0tGq6ludtl5z2cwMemkIyXhJCHx5yz2JObUNYa6Wqx+6lKoJNYSJw6WygoN7r+ba/gdtMeiNvEiFalaq/+V+BBQi9TcuoqjqqOnf0c9bR0YlLWqT9Q9h2bIJqw/9ZtAhmY+wis6PxuXg49Kq3LKDPndrch/sMv+BoBAXzNbiz1xNoxWR1Hgy/vmUZ87FeWo+rn5bSL0fGITnHh/8TaKVA/tuQqG8TUfazN5Q3QdruFDkOxBhqXSoS4pEXA==;31:dqzVvw3Wtl4ahOqZm/Y0Bnq0Ri5/QrwQEOu/2SLLwo0Z1C0KorDwvj0bjRDovk17UOzzvJcBNfHu7W1Vh4DYFOQjFg9A6fAFv0FaM15yVcV6Vo8yfbk53uhbfWGX9u2kbzwwdQtSAwcKiAOXxz1uI7vgftJR7/N8aalzUbkp3R/nkHip7p7fwQwPhuFEbqf0QAIToWI7LNVsThN/aWs+LCGOivkWrWBWVqTxE9k9nAeOMZ/S0hpigcSBsydy8eVdk+ZvC1wAzgJqAim0GBwgug== X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1891;20:8z7ZTFgIx8rI9JMgL8yJk4b8B3N7QH+I9h6U5Sne1MB02oLTB0fxClfxnisIExCOb2/sykOmLYcX1SCwErP4NsA1o0veO6PA9o6XHdKPuAejx62SS2W2DdaIvqCjeUnwj4oRDKsWZcXwzuT87w0BF+55XVZQJ2MxMWqB8fVFoxCHiz3I2d2YNhXdGfQ7w6QE7Eo8zlZRw72HsorKj2ZcLGRVz4FNlNzrrEgCeyezc1WbO+8OK5RT4BGObrgv92mvPrDtbbC8I9UTb9BOi3tMy6lFvagHJhIWUxeMclIQaybzollHZyJ/UVF53drglEpPK5Z3O3/TeCT2Y7jNFhQ/YbD8wM/Hu9LsVQqcKK9SiEPdM0yb+hbl1JrnQh7c916ShrXi8IjEIZsdEuFpSzrq/Vh6pMrRwA38/Z9CyQBoQgGX9qxEfY5U4VFXlbNCMr08fiK+283XhUiWz36a36XkY/Lf4TdAwYRbizjvDlXYznqqwlu5ToDJZcFa2t9y1MBu X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6060326)(6045199)(6040361)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(10201501046)(3002001)(6055026)(6061324)(6041248)(20161123555025)(20161123564025)(20161123560025)(20161123562025);SRVR:AM4PR05MB1891;BCL:0;PCL:0;RULEID:;SRVR:AM4PR05MB1891; X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1891;4:8erCeJgYvGgbFF3YTVMc1l3bjjJXNcXA+jVNC9eAMxxdeakZtOxsqRI3Pd4CeMQKmebPXNZjr0CUGA+7hTLmBbQopytXxOsKNYKpU7BlU0lR0+Rw5T3h3N9MyCImpwcJ+6L/uNmnRyLJid6qxAgASIgMDsuAPKEWFHMJu2d5RHQvHhglBA53XcGppbC1klSuF1Q4/RUTqAv7FLoSDeqUapIyPwkLspWgfmYj//hl9X+XsMwFqojDmJo2YOilkCQSPss7xhcvu4BejI9bBCZPvUuePGh2CKU6M0zrlczjbHoEJKfZhsgr39FKV0DtnpKgvk7FkV2dxvP9u/8f+iqfGcWj29RLJ37ArQKbz9D9tpzOgv20mg/TvEBNr3wgpQUaBKd7QVOfxQP+pT6sCUixsx/jWW1+LZxGYcV/GB2PDT1qYbN7p4HpK7Lvfw+tzXtddZqsl9I3PtH2cKTwGzX1vZCIcWl5bBMrL3PopktzYtkh+a/yaUNwq0qnZ73bxJ3qvoL5i3Dx6FHSOrgnKhMXMHIro83yu6vyP6obBBA4/54aox1St4F6068J8PJAm27SSE++V7ZnRwZ7zbXCxA8d9pZSDO4qsJYPVjUZZaWfeXV2QYMUShGJEwDdSnOd47BO9j9k13lJsWAMImiztXZcJ+o/3YYbsI8Jkbe5yVL+liI= X-Forefront-PRVS: 0139052FDB X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;AM4PR05MB1891;23:gW1zbFagIhTh7N2Br4K/dGQnUvaZrQA9m5ZX3?= =?Windows-1252?Q?bZ0ee6AfM/RNOVpKTJ3ibTyJVgTrEDkmbRy+BW1+CSb0qlUMtLhaIUIj?= =?Windows-1252?Q?ZB7w3StJ39GSaZxSLadlrw1zVbFJKM5qgctcc23xEp1xbEjWofdxlvoW?= =?Windows-1252?Q?OMgKz34SgIcg1u6+lIjup3CihhY/zoFYznq+rRy4xn3OzHiG41dupHmB?= =?Windows-1252?Q?aBB3WuoHbAaXy5xzfcfb/Lp5l3Bk1HYF5V/WL78CKy4fEuS9a6bZ6847?= =?Windows-1252?Q?DR7UIblkyx9FFrRwY7OqNXVOP5Zz54Wy0AanEt812heuRt02v4xLByUA?= =?Windows-1252?Q?9pfoLgKmMK85v6J83RXjazprq+kl1i3r5sMh7LrXd0ekbVT5szlEHkJZ?= =?Windows-1252?Q?GUiZg19tRzfAsUPpNWTxsDUuoG4PFGQaziw1i9maUqO1gUBFGnhLxiSn?= =?Windows-1252?Q?uQf6jejavo+0rsvPFUUuTvYdFtumPui1aXHvX+Qt/dA9EHut5VK4uMwY?= =?Windows-1252?Q?V36A9ygXbRG/jbAeixeYHkUoNoVKVJ99KYiEDESTjE4aqhIWgsGisSyp?= =?Windows-1252?Q?d9c88WJeqBhLnj8k7anyjIIfRQhetCpA0EoBl2SU9Tj34QrrSJtTw7EU?= =?Windows-1252?Q?1SPq+lFs/EXdTxJmvT8wYi9KBmpnXU3qnal+UlztAMSbRXmqAGUhkwbj?= =?Windows-1252?Q?UJZmDiyLjLuVSeoEbecvjllkcW8tNs7gak9ONVfvc4cZCHvsgwWUESB0?= =?Windows-1252?Q?29NV18iwW2VZf99f7oYxykkdi6yjmqPh8XXU690k0/GRHQbH61k+1iGu?= =?Windows-1252?Q?JGf/DUmjzEnRAYtc0WulQ62OnjvP9258QARt8r8XvOWtnoXelMh7qwBJ?= =?Windows-1252?Q?e6BnVPBn4/Z9i72rELz0dKA++luleVH6KZz+CIZZQNnLJJozdK4DLHxD?= =?Windows-1252?Q?kHuc6dMNVBui13y+Uy3pNcLAHr7r+GiKEP0qNd22xhgpWKszHLLYUokd?= =?Windows-1252?Q?8kwnnnIzgAbOGXgy2Qv3n46GUiUr5d4Xqkqy5eZRkm198hvm3oCD82+6?= =?Windows-1252?Q?7QSuvLHCu90FXGxj8AeD3i3VMm38pgxdAbaONk4/wIq5bYi6TZm4Yjpe?= =?Windows-1252?Q?wTwPlLmxlEhFAuWLk8i75LbY1K/m44jOcVitwKZ4jpx3WWH7lmUgkP9S?= =?Windows-1252?Q?Xe9fRVyWePsSn5TiY8YfZ2XGYgAUXKaQ4ad/f0AiyoEgDCmWy2alLmLe?= =?Windows-1252?Q?D1mGhCUNfHzUibYh18BoRUx/tU9dq9Y/I4T/QVE60fFjrUQnBMxJ0W6G?= =?Windows-1252?Q?m+QmuhVXQ7d4PBq0NwioQP8MJOhbQ8J90iO6VqVm9UyZ3kSmAQxMJtJJ?= =?Windows-1252?Q?dW0LKMWnJI7bsI1pHTO/gdu9sg1ezCZzmFN4XrCzlnQtsi4xyr0tEqNQ?= =?Windows-1252?Q?OX6HzW18H4XXNwnpdU3nhW9uJRRLeAyhSFc6p2K5sF/S/o6jX5S8WGaJ?= =?Windows-1252?Q?RKhQ4BbBSbOdk9DDUnvLcSgD4/LFOodR6aPzRWtl+tnErHe5Q=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1891;6:ws03BOyddcFXjn+XyD8djGqcOTzbCIvhaTh61i5h8lVIe3zip6oftwZQgrd1qIbqV9UIagpc2THPdho4kM6Cjd2vC2Z8JVZLXxkCE8s7H86pspMhmHfc7QqeS8kUfdbbFkrHVdqaWHcG3g3fEcpaF1H/ydeQ5ms7cG3403cVXjhjIwPg7zP5NyGupF3pL19e5IG5Xn9leBlyY56QWlYsFK5qfetPg4GAOhYqddobVE7u7ewrwav5JYSoeRFVxWdoGH6TEJvziQpyvdC1jVhcNUUCUUjbtXXQxnfuefTtw2sT97eJqCJmmrp0HjYmaVeMVITANHxaNW04pNkyu0Eds0ITDJJDBOa0Lwm+s7kCdh3p58kyYOZlNmiPRjvTAqw0;5:9h5Sb7qB9meSoUZaAhgdSbpfLY10aKENQpWlEGAB7gy56Qe+KBuE4M2WD3teN79Uv33z0JlZmeQF0ocOw0dFpdO1aaQnwRXoUnMMRMn5/DSgumJkTPC5hpVphCD4gqjIdc45GmtMChb29M3vfIKrhI8KluJxmNbD+VI85Sjg+9o=;24:r4YBQDUrgPsA0GhQti7HGd6RE/0i1u6/I3w/EY3ZGn/o1yhPDG0dwgGGzoTGPZvsdgaLI03DirzlvMI4QnU7YeJzpeCR0k8C5X4HzXedtJQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1891;7:xbhGyt5nHxvugjeK1YQBeyyeYKfIpsi6pg/3pmvf/1K4f7uL9331sXWszEOnY7/9OvweqK/kJltIH7bfJlKipN7VvA9eWsaVBDAfGYPZ+Za2HVhxo9QOYrm/vpV0ZYAFlv1jX7b1+ZOZzh0HyXWh9Ij4Hyc4zVQLMhrsDG/mhRKHIiuxWtWRUU+VRIFcfwO5RW5FPXgN3KSLLYFh21MIj6xnpZTySm+zxPTcfs4YZyM5MZ6SlP7ysVVZaSShmhRQJn8oYZddW1eMNgn3WjT4F3K6H0eSvTMi9CVoI6l+BwpGknJgzyo4QCs+n3u/gs8iH36UTy4Xz46RFRpI6BgHZqbQwU3uv+wwr5zQFz5OnRA= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2016 13:27:27.2926 (UTC) X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a652971c-7d2e-4d9b-a6a4-d149256f461b;Ip=[193.47.165.134];Helo=[mtlcas13.mtl.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB1891 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2114 Lines: 38 On 11/25/2016 6:16 PM, Jerome Glisse wrote: > Yes this is something i have work on with NVidia, idea is that you will > see the hmm_pfn_t with the device flag set you can then retrive the struct > device from it. Issue is now to figure out how from that you can know that > this is a device with which you can interact. I would like a common and > device agnostic solution but i think as first step you will need to rely > on some back channel communication. Maybe this can be done with the same DMA-API changes you mention below. Given two device structs (the peer doing the mapping and the device that provided the pages) and some (unaddressable) ZONE_DEVICE page structs, ask the DMA-API to provide bus addresses for that p2p transaction. > Once you have setup a peer mapping to the GPU memory its lifetime will be > tie with CPU page table content ie if the CPU page table is updated either > to remove the page (because of munmap/truncate ...) or because the page > is migrated to some other place. In both case the device using the peer > mapping must stop using it and refault to update its page table with the > new page where the data is. Sounds good. > Issue to implement the above lie in the order in which mmu_notifier call- > back are call. We want to tear down the peer mapping only once we know > that any device using it is gone. If all device involve use the HMM mirror > API then this can be solve easily. Otherwise it will need some change to > mmu_notifier. I'm not sure I understand how p2p would work this way. If the device that provides the memory is using HMM for migration it marks the CPU page tables with the special swap entry. Another device that is not using HMM mirroring won't be able to translate this into a pfn, even if it uses mmu notifiers. > Note that all of the above would rely on change to DMA-API to allow to > IOMMAP (through iommu) PCI bar address into a device IOMMU context. But > this is an orthogonal issue. Even without an IOMMU, I think the DMA-API is a good place to tell whether p2p is at all possible, or whether it is a good idea in terms of performance.