Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751967AbcK0OHx (ORCPT ); Sun, 27 Nov 2016 09:07:53 -0500 Received: from mail-co1nam03on0056.outbound.protection.outlook.com ([104.47.40.56]:63760 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751230AbcK0OHm (ORCPT ); Sun, 27 Nov 2016 09:07:42 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Christian.Koenig@amd.com; Subject: Re: Enabling peer to peer device transactions for PCIe devices To: Haggai Eran , Jason Gunthorpe References: <20161123190515.GA12146@obsidianresearch.com> <7bc38037-b6ab-943f-59db-6280e16901ab@amd.com> <20161123193228.GC12146@obsidianresearch.com> <20161123203332.GA15062@obsidianresearch.com> <20161123215510.GA16311@obsidianresearch.com> <91d28749-bc64-622f-56a1-26c00e6b462a@deltatee.com> <20161124164249.GD20818@obsidianresearch.com> <3f2d2db3-fb75-2422-2a18-a8497fd5d70e@amd.com> <20161125193252.GC16504@obsidianresearch.com> CC: Logan Gunthorpe , Serguei Sagalovitch , Dan Williams , "Deucher, Alexander" , "linux-nvdimm@lists.01.org" , "linux-rdma@vger.kernel.org" , "linux-pci@vger.kernel.org" , "Kuehling, Felix" , "Bridgman, John" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Sander, Ben" , "Suthikulpanit, Suravee" , "Blinzer, Paul" , "Linux-media@vger.kernel.org" , Max Gurtovoy From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <0087fba9-7bcb-8bb3-c26e-4ef3e4970c34@amd.com> Date: Sun, 27 Nov 2016 15:07:22 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [2a02:908:1251:7981:6d52:6354:6358:a40a] X-ClientProxiedBy: HE1PR02CA0061.eurprd02.prod.outlook.com (10.163.170.29) To BN6PR12MB1298.namprd12.prod.outlook.com (10.168.227.148) X-MS-Office365-Filtering-Correlation-Id: 74727b3a-90a4-49d3-3f53-08d416cebe60 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BN6PR12MB1298; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;3:6XAnvxJWh+JZD64RNLRqJGTgNLNSX+PODg/rkH4GHmnZE1gXfXB8tLg7ipkCtuEP+V8l90enIETqJVhhe4yQPR5oE229NzCgqj4FG+VlppttfvIteDpdJMjhyN52IavCxu1GZablcrvSSzxnlRhkx2QvubIXITnXAl7pYyV+2AXdsyl5uXtpx3jthicGKuAR3kXzXEtxlLGv0UPTflniN8JyyI4970bpZtbRMa5z6JprPfV6D6I/IfMuNtyYoEQu34gGElTqZgtBjCjoq0V+fA== X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;25:imunwwNQebkqpQWLcNuM6XY/BKerPOcYdLyGhK4utXukHXv41Nr41vAPFepSr2N0IvRmMRAZbILwMya6Q0TuaBMhP6NCPDeCTr6m/eWndTpshmnt4iSNMvGRCdESPEJtsN1RGG8cQ+JrLh821/reYEdGxCRTdoYNZchTb23xMCXIwAqMtrvJLlERRVdKRWMSUcven7KGGjGnEyICoY0ErOT9EByDlaXcOMlls6oAZ9VgAWCpVoQNo2f52BtydbhM9CVHVwqfcr2w1iH0uFE/hUG8ucWY8o9XGu3Aafhm3iMZiHCeXMfKp94XZLh75tEoDsCvweVjxt6sA4ZfqDISQd/jueNWP6oODuhda5JfA7sdGAd8KSsVgKDGT78ZSunA/P/PvHfQ/8/T2AY9TcJjw66bg+91nFskEkY2aHNzJa0+3yysCpCtaYOnhQ6iBjz8tigFKe7NPvMYZUTKsIQdYcQFyBoiKL3dTqBJOH0LQc/fQ1Wz9Bi9Yypy81Du8Ak7n/tNfa1arzeEdT5/xNqd9rafGTxoxx+mg2N6ACKWjmVQUpg8T0qmdS9tnMLAoa/VCb6XEc1OsXrh8yK2Gx3IcoEtRE2ZP3RD574Hk0g/uGdEpk7wC1/ef9oXrCq39KTpL6oOYHanTg46bddhQaTO7t+hPiQCU7GS6Pb+frido86kEHayvxl9ELEKRPzFUKdP8lurBEQoZKcxEmkSyuavoV8Q/ZCB229RvwX0ntF1tGLaaLmVeM8Z3HSbzI3g+C4HUr5Zdkv92ejguKspGI5+U6I+f0pJiusdkNGI6VQREtZCNZpwIDfMl8JRM9+ZH1dNAP0VVqvwJLdKHUnuFthVsA== X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;31:0d8fiR3/+63tvFngUVdruigxrL9+UQTHabIHdV8QVerrQFyNBa/ucpSfNEt45C5yqTDxNKhJuE5kCb+PmCz4p7tV6r5GSs2Jf2rxn2jctApAXCgo2NEO+XHraeHMVIJDHlwKcAIkBlPGPQFIp5YnOxYg1GANBSELH87Hm0RCoJrTNMa07H5uAExLXtTNMnV6kzROLrQGANFAUX3NSrLJwfyasea/YKI1XnY25ez/2eePGu//7+p94FZO8Upe4t6Zmic2/jtxVrZezKLxmdTIWg==;20:pBWTKcu07Yvqt+QpmmAMFQPh79EIX3/6+8NeJr6zHs7lIg2lmN9QwvSqdmFb/SU2B4IwtuTWUkzvnJJD2x6kBnTsnP/tGCTzBBNUYTiBYzDTkK8j3KLIKOSeDC/g+oy/EbP/Z5ZHVKhuzBq5K6HNoHlzZHx/Pg9UWMMbW05zH8+5mF3IbTzvJOApATa52DVq4p7vpYF4CGYWqOw4pGN5udyXtrAgn/0ULR1Bl/bftAWQWbeyLf3T1VNlpJklze4A9FpzapKfArx5xVulXT/ynAXchJ7lEZds6XDwLqSTWlj0UTUwsXSjeMdrbPsxMOSOMFopNLh2og4Pkv8HVTC6r0nZe4IwwUiYEcP4M1QV3ijFnOMbb1bdL03Wo0NIGq36pT5AXkobSfvg0emZlLT2cZjZ/5akQt8vgqPn+8LJ6pyNOLs/8a9HUwzjUhYj9BDvO9eK93mMBbgJ+JeyK93STiaiYcgm27+RK1SMl28kkKENfo/WyCObCja43uCvD14W X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6060326)(6040361)(6045199)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(6061324)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(6072148);SRVR:BN6PR12MB1298;BCL:0;PCL:0;RULEID:;SRVR:BN6PR12MB1298; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;4:AMBj1FMdwtytGv8rfMGaWazsRw278A3CxZGHcB2vgPpjJPhrKhE1DRhwTXXmioDc0RnZEi+jINwpMhBOv5yGM+tZo4k+aAXa5I7stNBB9QIV1D9AdRH6fm7OOPE92wQnByyM47806KeHIv3+9+Iige4iSRtAoZoyel2Dr4HznXqEhtCZVPkURqRBR5dm9N9BzgDqpc7IRbAT30u+Qg31mnNZ90xWlFebJ67nXj/AHgGsfBGTiKrXtBvbpLeSDUZyYGF1CxEjuGJrIHEwe+0Hl65VXGbeT0s1D866M9z9K6eityaPx19nUxVxbYBsoP/U2ePtrsQcoZC4ro6PTlwChoUE/4bvJe7J8UL8BjUWRVbh99jERRPby5uz+ug2FsD9YtpUzkIueSgl8QMto10ijCo22iKRobPeRxAgLYdHReoN8MoLziF2VfXDq6jCH1PidJgVZqWLbkvFxnyN5Tr+8oaV4bWC8ZmyjVrAh80rrAE4B6kgXozVdgZ2ZhowbORGi9xcTVbVUAgPuThVPfKKn4/nUfdWkhS8M0aVRhglQFfXLL3evD5kMKcW+bN7zZjOA6E7EoMG9gdYzqj8J5AxZ23LjPLw/m8geOtvMv8B/7PCFiOrCYGDLindN31GL1NlMP5t93uKU8KuOMlU6vvD3Q== X-Forefront-PRVS: 0139052FDB X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(377454003)(189002)(199003)(24454002)(39450400002)(68736007)(6486002)(36756003)(7846002)(7736002)(2870700001)(65826007)(1706002)(4326007)(229853002)(733004)(6116002)(83506001)(47776003)(31686004)(305945005)(8676002)(42186005)(5001770100001)(64126003)(81166006)(92566002)(105586002)(189998001)(65806001)(65956001)(106356001)(81156014)(5660300001)(33646002)(39380400001)(7416002)(38730400001)(97736004)(101416001)(50466002)(39410400001)(39400400001)(6666003)(2950100002)(2906002)(93886004)(23746002)(31696002)(76176999)(50986999)(54356999)(4001350100001)(86362001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1298;H:[IPv6:2a02:908:1251:7981:6d52:6354:6358:a40a];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BN6PR12MB1298;23:tFRLnZOT4alwKwoG+r/Hesw+x1FQQGjISb3e2?= =?Windows-1252?Q?b6rF9posS/SzNkaUY17iYUBShUsfq2X4TmZmaacRmrBdohdZXuALObC3?= =?Windows-1252?Q?eKLFMFqnDSPgnCBTuU/RrYPjfTpdh5wR/BgTZjrqDYEBjpEutpn2CAkS?= =?Windows-1252?Q?+cInn4UwJkdbtDn30KwhfaYu3iQ7IridTd0BJmH//ubboPCm3hMoiiP9?= =?Windows-1252?Q?BzBMk3fQM9MHOjK/YdStguf8dR/IqhaoZJUCqWVy/fQQ5rWKN7/8wtYG?= =?Windows-1252?Q?jeRFYlEIHQJWhZ4GfyKhEkHmF/dDIxCN449sXoVfPkgq1YiSybDwaxlW?= =?Windows-1252?Q?xLyQtYz9U9rJWhOF0TGXx0o6zm3SoXO89U+mXBP0P5aBjQ3wr/nqBuk4?= =?Windows-1252?Q?wl9WFu2654BU4i3P5qgOj9pSZ1o69kmFMCnZUj5+Ydqzv3tRcEPA6xUb?= =?Windows-1252?Q?F3/nAj2e3N7QzO1VgqCRVEGU7GF9ky7zyLqqUWE/oUTX04o+RZrOkEGQ?= =?Windows-1252?Q?VfuYZU6leNdSbDoWtMc/plfbvvpvRfA0NYHvwr2T1e7cIBP2yoFCbAKt?= =?Windows-1252?Q?83z2a3LOHjUA5nqgxTQNfej3jVUglZwgkvnybaJrcYMsvhRhQA8/sv58?= =?Windows-1252?Q?QfRh+ckgiNuxT8do7QtJdITeNJuFIe1PWpQaWvAbjmfHnIf4Gz/wWKaB?= =?Windows-1252?Q?Y7bxCsRZHg1cYHFoKAJoXxRqBPcUmN6SPiNnk4Yq4+KueY/WExkul49x?= =?Windows-1252?Q?RNZ1vLqpVXgYuhih+NLj2JYKo7BgCKz/UrJVfnZIB14NNP8yh9sZmuJz?= =?Windows-1252?Q?N/lOuIrTlDBiK/TuiTjEzZwGBvVmw+Y2CC8SR8Zhegwpin7N27f8MbR1?= =?Windows-1252?Q?fs2BIJNILWEryT+IJI4Ksrzvc6pgRKcxgz3g/iGnzCpXzIOQtbJlETaO?= =?Windows-1252?Q?IwZIHFQ/wx5455FlYb/eWZL3XKVdMx5znlFf+svyOYIyPYH0YASO5JsT?= =?Windows-1252?Q?t9InvxU/RFztZhecdovEcM9nts9MhGsplea+h6xm+tIQTmUk2eiSa/LO?= =?Windows-1252?Q?qljptMTcohnZneWDLhjpa7oo0CFVH+dAUKv4L08ThUNop3t1REtqEWtF?= =?Windows-1252?Q?A12InjQDC2fAfwhdRWHsUc3U2hbfF9jtYol/rQmo8AG6I0RiTKwekaeq?= =?Windows-1252?Q?cyl+UE0j5N81zi6VDkw4aJqYSP+VBlN8wWZS0QnJPnXZ9YGowbK9VWR/?= =?Windows-1252?Q?ekJnwXqi6YiwEk0Pyigg6uW/yvMDwF1MGnzl/5cPn7753q8UHhhtJjlP?= =?Windows-1252?Q?33zSG6RRqX4W0v6fFEWXtAhNernZ26RxLgptuY9NVSMcBW5c6kH6mAWZ?= =?Windows-1252?Q?m8cAaGrXk46Sx73HK8ihVQl2iAkDxDXByBz7g9LmSZ9aZdQDYtnGVmLy?= =?Windows-1252?Q?NBEwUzn8esD727I5+dmukX9xpCRdsIqZtYX9aJi1RPV6ol4gNvjiN00S?= =?Windows-1252?Q?t5P8WU=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;6:YPRCdUgkCmTZGZBc2kq3b055RxQ6NzEW3FrbXlz38hyHc31tXexYKYV6laFPlO5iwvFsowoZ6YwPPRIg5NMmlIwCyX7faj2fwhLwLayR+TrG8TyQRgBB2dxDkhu+4XYNzCb15HoU/oLNt6pf4IiVMvCy1tOpVl2yAfmLBFoOD+4ZXx9ZflhejojSxYoHsf46FBKVA3ODDtGcIV3guGVUmBWEMKit0J4sm2amtazIRjEsUI8mSif5pDKUHjrZWnrXJWMQ+bgMUTN3DmkSIUzOBJTOv+xfQ8ikZzDpVgeDEb52E6uLh512P0PH6M7MoyFf4odQI7jVZRxWVKvzAR+yw36A/u1F/ojcMMwRC7X2plncJ8g6HCJLYnW3Eb2Cw1Ovx7XJTpigRCzIscFcez+KGfxUP7DxQXoTodO6Yr3cNRz/1lsv0NVu58abPNdSVXmSuCeJfD5YQ2deM4N+dtw7/h31ysF3wasbLPXG3hWGcZcwWHT2oZV6xUmRGIJW28Si;5:G12jgnNhy1tA3VtRd/1Cl9NPhmTqMiAz6kR58gf+yQcYUdYDsVGazsjvNax12ZS7XajLdpZRTseWhCgjwku4H9etprWtknDic0ILea79o9oh4aBg04Hj970o0Q0pipPDrBfhFtJqGIqxZIzIw+E05w==;24:JWPUjkqil7wXnhG6fCZecU0HRy0h84J78WD69E4QvD3U6iPz2Y4z1947k4O3wiXNFD2fndA7dXuVpXIH9MHYMGso5kKDjl8ncmgicpHkbAw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1298;7:03fVGxIeDrkCeGH9/i5MlTg0NuUKs6i+S+8n3SbhyIz9Wr9rISYrhJR8Itj9oagKnArGq7CVBAUeJYDdainq0Q06tFr0iINwBTeFmaLCtUXQivoEI6wTWRw8Oc2LoRXU+pBiW54Nb7Apvp/yYkWuGm8yRO3i0KbtG1nHBpNy7i+xa4oQKNvELDe5argo0UeH/NEMpuVRfHeFB1ZHsY98Kk7DmE9BQPzoeFNMJGCYX1rE8yZvafHp/GuHE76ScRjnNIwM6qqFWakXmxKPQBdTiA+Wkw15u/jhB0VBONeVfJ1c+1RvVzkdKsYdXz08ykUoCz/Ah9eGUBUH7HTMb+9Y3+WCpoQAY1mvzrg3cCclxKEMQIYqLFH07/YfnK2O2of2sw9j+J5loJnpyHfx4EzJTcrsHs6XdA0qA3dZEbQlNgYBFWJITZfetG42GNmM+fEFn2WQ6dQNPm4714NA9CWdvw==;20:wRrKEpZYTXl0AFo0yhxTTesoFvw4SRicx8unv8QQkh8mMQeOjkLTrXzVq6vzJXeZLw9Y4yf3oDFGzICMCalLjSODx+Mj8zekKnNBvWaLKWpWvDXfqE8Nt/SSzxEsrNTSCWnKVCdNlQqdH6+CfJYSd0JXYYdXLLnE/O6jQ9BcooI6zsPi2HLnjbfq2UUbzsn0x07DdwjpM/lF3loI4XRbNOA1UQoMDUUOl/30RwFosoL2Er5VfZYzmiptvgcj1YIA X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2016 14:07:34.6377 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1298 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1775 Lines: 37 Am 27.11.2016 um 15:02 schrieb Haggai Eran: > On 11/25/2016 9:32 PM, Jason Gunthorpe wrote: >> On Fri, Nov 25, 2016 at 02:22:17PM +0100, Christian K?nig wrote: >> >>>> Like you say below we have to handle short lived in the usual way, and >>>> that covers basically every device except IB MRs, including the >>>> command queue on a NVMe drive. >>> Well a problem which wasn't mentioned so far is that while GPUs do have a >>> page table to mirror the CPU page table, they usually can't recover from >>> page faults. >>> So what we do is making sure that all memory accessed by the GPU Jobs stays >>> in place while those jobs run (pretty much the same pinning you do for the >>> DMA). >> Yes, it is DMA, so this is a valid approach. >> >> But, you don't need page faults from the GPU to do proper coherent >> page table mirroring. Basically when the driver submits the work to >> the GPU it 'faults' the pages into the CPU and mirror translation >> table (instead of pinning). >> >> Like in ODP, MMU notifiers/HMM are used to monitor for translation >> changes. If a change comes in the GPU driver checks if an executing >> command is touching those pages and blocks the MMU notifier until the >> command flushes, then unfaults the page (blocking future commands) and >> unblocks the mmu notifier. > I think blocking mmu notifiers against something that is basically > controlled by user-space can be problematic. This can block things like > memory reclaim. If you have user-space access to the device's queues, > user-space can block the mmu notifier forever. Really good point. I think this means the bare minimum if we don't have recoverable page faults is to have preemption support like Felix described in his answer as well. Going to keep that in mind, Christian.