From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933590AbcKHMo6 (ORCPT ); Tue, 8 Nov 2016 07:44:58 -0500 Received: from mail-bl2nam02on0042.outbound.protection.outlook.com ([104.47.38.42]:17312 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932477AbcKHMoz (ORCPT ); Tue, 8 Nov 2016 07:44:55 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Christian.Koenig@amd.com; Subject: Re: [PATCH v7 0/3] drm: add explict fencing To: Chris Wilson , Gustavo Padovan , , , Daniel Stone , , , , Gustavo Padovan , John Harrison , References: <1478588090-8664-1-git-send-email-gustavo@padovan.org> <20161108103508.GH18604@nuc-i3427.alporthouse.com> <20161108113256.q52243qihb6kwe2h@phenom.ffwll.local> <20161108114551.GL18604@nuc-i3427.alporthouse.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Tue, 8 Nov 2016 13:44:34 +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: <20161108114551.GL18604@nuc-i3427.alporthouse.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [2a02:908:1251:7981:7912:6941:cf2f:a396] X-ClientProxiedBy: HE1PR01CA0082.eurprd01.prod.exchangelabs.com (10.165.170.178) To MWHPR12MB1309.namprd12.prod.outlook.com (10.169.205.21) X-MS-Office365-Filtering-Correlation-Id: 934c3a6b-ed20-47d8-028c-08d407d50908 X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1309;2:esbVDo+M2ClzniXR5lKsDoUsINM687AGeNrJ6itbEHOT7+FQLT03WUVxcBYJgqEOGi7fH2V8Tfqmcm+XZtRN/WcJhCkLb8YOX4Rp5Hvl0YPnlE2NLBzzk3+QUDEHoXoi8C7XNDWiV7TqAAcAsPwYny1LB5INkHXN+crXGhBEvcXsUbDQN4AaCsoUvhcHXp8A/DCPLq2APe4qpF7fKnM+vA==;3:7enoqB7lLIsKaoEiXueLJy6JxfYcC/GUFHIrAGxGq7/TcvZbutsPZQ4ei1OSHR+CnXQX+7mizTePXpKUpNi6qZiqt1vXRoM1tYxqSe+N5OlvON9T7trh57zRi7WMgeuTK9jWyoPTIB8JeO2qk0r6ZA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:MWHPR12MB1309; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1309;25:9wk9K6wMzPSsCWXRjJc/dhdGyaeBd1K4XlB/pwoJC/eXGnN2WRdxmF/HNCthdGqlwNgF6EB5p9fJJvXVIRqNvbXwKdxrf+ublEsPTPz5vU3j+hYS0/9HaWA/8ac3K4v6DTYoKf6iV2hF4+n8lk3+n0e6Ob1XQ9m9hkoo7LEivntp4RvtL2GomFiInDLLEATVLv6yG7+EK2A0r6bb7fFee69Oq5P/JZsgiR0lSRf5hpJs7sTXaDzphU7kbzai9FzGF2iEKr0dLE/DmymoZkqJp4wD9bj+wj2rTXr4SuSElv+jZi2LrpUFgoAzYMw66f4b6zdia7rAlIFDBnfrmk8TApwxG5+lrSYVoYYEn3LQbLmJ3HedLoVcrw3SJ3QtQI4s9kj57nRbLPKQnIijXOGRtSLJlVlY/rVFYlYtqTnaRsq9fB6o478HBBuim/3LtW2aUkpyxOtRH0FPI7RMp6J+yV1N3SPePlyDRpe+InjMTs2onkmDafuYzcUliQcmCY00yZZ+XSHdpkjmGoo0Qv8qxe23LZDcoyH5i2fi0n3uSvuNyY98zgiBfGaxp9TAawlIs1npWOcfFUoY7C1Zz1h8GKCFc1qqe3nDHLljHyfFQprYGwROlpxD29BrmrloyYAZO3H1Azp5bd47g0jwwe5tl2a/mrvCY57W/rhCcYhkAPnmteQNa10hrvzVU4qVi77/xQegHE7CngCodNrKTTlJcQrQDAktjPCHIoaD/f5ELv7h/v5iSwg10dhJ4sJvC4rP X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1309;31:ooXWf4dP+jjiz6azNtzTDVOvD23gsy2/+K3qMiBZP+5YL1+U7vd27no1sDyp7AU9Js4fcoqFwvWL1+oOxv4wblvmzvjDYXFlNGxYQTvlDPBumdhZVufFnmDZdxcwTHYHCBux8mG/ZNBjje5v2+ulaREwPo3JATbJmWwtiXdW+KTXNQm3qcuio60sp4gwAdi3hsfF9llMczbUQZH1sWOmPDjMDLdpPzkX4h078oIUK+wFpXuR+Amb5+SmnxPFUO5C;20:MZe0mngyPlA5upoD1x6I+pBG7/rKsivbQa/ZruHDcBYDV7jsjl6qVUUeEL6Oa6z3a4wyClKq2NP2gT1GwRJhzsN5AA+CvysSg7OPz22iIfQ2E8dt4KgwdUB+DuSbtmiswvIdMfrx/xegVLek7000PL/YJ635QLpiOD36XT8REDzpXUmQdg8WHznvv3O+Mfd9oMn9bYg6vFefPt/uYFp5fikPzViNMJiLDMWrNdy/PG4d/lIPw6GGOp0kjIL1bq5+ao74bxDt3IHMJA0aVZ+6FrCpzcAK9rJVenPeZ+IZDWHoqtNkZ1PV5UiKuk9a7Pgs2XO8Nhu28HR6/aa0UI14jBeM2iRzdX5F3/2QEY+OLFGEtk6m5mTfcUxuFjn5+LBkaSyj38Fjjzq9hrE3ZXar+NfAWfTqubUNiR79bvzfMf5TfYgsLXplub7QhcF3VYux/T/vYWJBtfg5a7FEy1GT/PyXz5KUlXAI2CYoDuAiDEAlCx6QKVygsMr7hj0doEKb X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026);SRVR:MWHPR12MB1309;BCL:0;PCL:0;RULEID:;SRVR:MWHPR12MB1309; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1309;4:gwkBvRZ+pYjcOqnP8ju3Q04gdrhM7023M4GU+DRM2YOqe3+3zt4nnpFMl2zT3+eGR/lKDEGFt5GoB4ikYGK2AfWgPHb37N1G4Zky2m2g8fmS1PmNEj+ke9N6rrQOiKh5YGSv6iTaK0D0+qB1BY9KSHD6kkVIdfHCYTbF7wi5l0VDMYlR6oK39Of3fM3TjvUORQqtnNZeJmFBhyth9gVazLNenqeCmlfZx8j8L/ysZYvqGM//jaE0yW6hW+AiXtqI3ZufcKFPT4jO+bvrIOar0jHTSuSVzJbs52JM0JovV60PvDJeQ2yLoVSk1jObwKSIwLvPmR+cr0ZxVAyONs/u3xZof4v69gMr/8B7ben+hxWgxwoRqxsr80i4aHSfqHMRc7wK2+ji3bfKSYc+eN1GwC/ya2GBbyTVkW7Ph8M0wFU= X-Forefront-PRVS: 01208B1E18 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(189002)(199003)(24454002)(54356999)(101416001)(65806001)(65956001)(2201001)(86362001)(77096005)(50466002)(92566002)(50986999)(36756003)(68736007)(2906002)(64126003)(105586002)(23676002)(81156014)(8676002)(230700001)(81166006)(93886004)(33646002)(7416002)(7846002)(305945005)(189998001)(31696002)(76176999)(47776003)(5660300001)(2950100002)(65826007)(4001350100001)(6666003)(107886002)(586003)(97736004)(42186005)(7736002)(83506001)(31686004)(6116002)(5001770100001)(106356001)(1706002)(921003)(2101003)(1121003)(83996005);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1309;H:[IPv6:2a02:908:1251:7981:7912:6941:cf2f:a396];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMzA5OzIzOm9ZcGhTUE42NTk3QTJRQzBKNnAyWUZoR3ho?= =?utf-8?B?ZVFSNU1WdlRWUDlZckRDQWcvcUFnVnIxUUNUS1REaUhZYlpPVVlobCtxM1RH?= =?utf-8?B?bStUQjJYcGZ4MkNic055b2ZVQS9KdDN4K3dwbjZ5eFprdFpnUXAvZXpyNUs0?= =?utf-8?B?aGNkaUFmVVE1elJtR21lUUZyMWxNRkVKTDZGWi9ZSGlrKzZsZWRWTGN6TFZH?= =?utf-8?B?TnF0UEF0a3h1eVZPeEtOcURxcnREVkZmd2laWnZaZ2xlaXVBdXJsRTVwOWxI?= =?utf-8?B?WTZvS20zSk1saWkvMUlhU2tNYWxnbjRDd0lselJjanA4bVgrQjNDcFNuWTZu?= =?utf-8?B?WFFHMEkrY1ZENUZsRlk5Q1dyeWxPWDl2UlhlRUtDNllVVkEzUXBrTUlLME0w?= =?utf-8?B?VWp0S0htNkFoWUYzcUprYlY1aTRmbFluYk5kZTlsMVZHSndyK3p5cC9uMy9h?= =?utf-8?B?c01xVzk3RmlZYmFBcjZDRTRoOU5XTklGRVplczNRMDcxa2ZIV3BWTHFlVWtC?= =?utf-8?B?YkZ6YVR4OVdNODB6OCtQeVZ6Qnc1ODdBb2VWZWYrSGNHV3pFTnk2R2R0WUlp?= =?utf-8?B?NktGYzRnNDNlTDZ3dkNYeUlweDJrdzN1Y1NxS2V5NGdxVkpielpuZjZEcXF0?= =?utf-8?B?cEhwY1pobWxnSCs1Y2hqSmVNSEJiT0ZWQ0w5Yzh5QkZZRHNya2g3VVMrblpk?= =?utf-8?B?ZzZlNWtISTlqKzNmancrV3JUTGNReDZZMTdQZHd6aWIzazlYWFNRZkgyaERj?= =?utf-8?B?L29Fd2tDWDk3TC80SXFWRmtVeUNXcWV5d2Q1WFVWTnFFSDR4NFJKVWQ5TmQ4?= =?utf-8?B?UFM1NFRIOEsxQWgvaWM5bkF3L1pHUWZwSkpnbDZ1Nkk5bWw3YnZTZWFhL21a?= =?utf-8?B?ZGVibGtpc1RKbjE4RFNnY1lueFZZSXlnN2pERW15cjI3VU9rT0tid2F2TXM4?= =?utf-8?B?T0xMNTdlTjd0R3dSV3NtYy9tYUVGcjdtSXpnVUxtSzVrVEsyL2dyYVFHLzJa?= =?utf-8?B?RUd3V09RN202bi9hWGFrTk44dW1Fa1Y3Sm1DQUpyTE1OQUtFdDR1M2hzSm5w?= =?utf-8?B?UkxldU1rc0JCNUxrU2cwSS9GQnpONmhNNjljeEpRd1ZVWGJ2QmxJYTNvVEdm?= =?utf-8?B?dUhlUmZVL2VWa0krTkJ5MDNCK1BCa05jVzZla0oyVTYwaGF1bm1acHQ4UGJI?= =?utf-8?B?OG5vb3NPUUVZV3BOL3N2NWpNMGU5WStWOUpUV2FXZ0dLTTNZU1JkdmppUjRl?= =?utf-8?B?REoxbFFVQWlZUCtkVHBnM3pLNnFsM2NycGdzUjhwdjZXN1FqRHlqZkdwK2or?= =?utf-8?B?RElVTHNPUTFCUGtaRm56enhHQlFNcGVOTEtkbllqMnR2SmlOR0pNNFZrSHUz?= =?utf-8?B?THVlVHFVLzR3T0VEMG5qZjNxNDRsOHRFVkpzUE9kR1JFRFdpTFNnOUViWTN2?= =?utf-8?B?aUhvL3ZDOC9DVFVIdENFZEp0UVRUajAwQ2VQZ28wZ2hESjAwSzNvamRTWll2?= =?utf-8?B?UnVjbW1STHJhQ0JqOVNzWUpaYmsvanFQb1cvYXk1S0V6VFFDeFFSb3pKdkY4?= =?utf-8?B?YUtxTnZWQU05SDN0bXpJQitzZzk4M1ZPT0dyWVBSVG9INTRISVhHOGl1K2hk?= =?utf-8?B?dnhHSmRsQkV1RXNEUUxQajJ2SVRRMkpCSnZVcWgvNmZMckRFRnRVS0NyWXdO?= =?utf-8?B?ODgvTzNNOTVYbS9MUTVkVG9xd1hiQlN6UFBaVlNFdERKdHZleWRQR3luSHpW?= =?utf-8?B?dElFdGJJV2RLZCtmWWdvbDNXNjRnTm1ZQ05OdXhpRm9qMktqR1B6N1FSaENW?= =?utf-8?Q?DsWUPLIaYMxY5?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1309;6:cYeswLYIJw9g0NUGfj6cCMlMdx1hO3tPj99bl0xk4GGSqPeodqXNOwf/7ZKUknbdt7Hv09dPdS4xP/heS2nVJ1Ngkbw9ByXYNDeeg6RIc8EgjFhvUpr4R3OO9+11I0QHx84zN8Cy/jonnx8TyyZlrWjb2YCZO2EPzAPKR/aL0C+Yl+lDMOB6odkD6A4tWyuKohcqmzp1YMQhSLwT1loGV8hvaqkSD/DEH+zdmTzdqy+FLPH/e7Pdvf9yWF+gGh+xm8wfAujB4qxHY2WFIt3XRrlZ86Zsm6GHW5sT0llSmbe9/pcHtk5A1hD1KOQGqL4FaMSTWj3KI5he4lW2da0S02f6xUzepw+fpGi94EN78ok=;5:0N9aLLspyibvDylOWvQyGG/ygwzX3zZhqZA2uWY9JvrnKJBEuDX1AG3hHC3y6o5Jcg2LGAUPQE+ZEPpeN9AJXQQ21yUrUsQFSFDJfOZSF2mROK0cMKDbqAA8FlmB58BVd2GoaFoFz7WRH88xox7qnAInhWFa8VMmvH/Qg0XhsOg=;24:JDCSh87nw9v/c/SwV0ITx97vAYY1ofmOYN9X7cOxSZYooaCaTMQWuf/Gyqpzv98UgX7r6VVPGZy6FcoHromHoReVUATwqciKOubzGHzjhZY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1309;7:ivjHaReihcp/B6kiuo9ClxSOG+4YakjxtBfhqI/PAHcVeajiKDLQacixT29jOToOzory47wK1tUDFrJQSS6SzqQRaHTQq4aNflPMbLFyN1MkB85Feai8YoCxbkSs3IncL5x/qPnIkdPS4KVowXJeitWkZVs6jbnYErUwwJR7O32zQyIAAntd1PCjQkFftx/YTetCCguQqAzveZYGAqOoNiH/3KMCIr9UDDWU88fK0fjF81AptxXlfgKPdw/xtpNnlHjIM9fp+r2nlJJsvPNEwu3P++1Qz55AQY1fVf36vYc3tdUOFEqQOSaH4fwWH+OcRaMrvB9x1nWHoF5B6PqDkTPlEDp08dKdRrEdzDE/GZs=;20:LPZxuo820XyXXFpuRO3YHemUiu8y+7+g3T+c/j04EgRp5MjzOM+dXp6cCxYQ4FBiFnvP7I5dzfr95teTbrrtvZ6YL20Y1LgSw61GtX9BbOxz7P39DJk/P3ZCMeWyoSSbe2gH9JHw726YEsY6fRlbCXc4I+Q6sVdNxfXTkDhV7f2L+O5fwEaoBcMxqvwhaWwJh+/EsG0fHUDL2VimLl7W9s8M7ymciXdI1vtzzoGMlk/UDiA3EERpfxc+isvhW8ut X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Nov 2016 12:44:49.5494 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1309 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 08.11.2016 um 12:45 schrieb Chris Wilson: > On Tue, Nov 08, 2016 at 12:32:56PM +0100, Daniel Vetter wrote: >> On Tue, Nov 08, 2016 at 10:35:08AM +0000, Chris Wilson wrote: >>> On Tue, Nov 08, 2016 at 03:54:47PM +0900, Gustavo Padovan wrote: >>>> From: Gustavo Padovan >>>> >>>> Hi, >>>> >>>> This is yet another version of the DRM fences patches. Please refer >>>> to the cover letter[1] in a previous version to check for more details. >>> Explicit fencing is not a superset of the implicit fences. The driver >>> may be using implicit fences (on a reservation object) to serialise >>> asynchronous operations wrt to each other (such as dispatching threads >>> to flush cpu caches to memory, manipulating page tables and the like >>> before the flip). Since the user doesn't know about these operations, >>> they are not included in the explicit fence they provide, at which point >>> we can't trust their fence to the exclusion of the implicit fences... >> My thoughts are that in atomic_check drivers just fill in the fence from >> the reservation_object (i.e. the uapi implicit fencing part). If there's >> any additional work that's queued up in ->prepare_fb then I guess the >> driver needs to track that internally, but _only_ for kernel-internally >> queued work. > That's not a trivial task to work out which of the fence contexts within > the reservation object are required and which are to be replaced by the > explicit fence, esp. when you have to consider external fences. > >> The reason for that is that with explicit fencing we want to allow >> userspace to overwrite any existing implicit fences that might hang >> around. > I'm just suggesting the danger of that when userspace doesn't know > everything and the current interfaces do not allow for userspace to know, > we only tell userspace about its own action (more or less). It's even worse than that. See the kernel can for example swap out objects any time it wants. Userspace doesn't know about such operations and so can't provide them as explicit fence. Same is true for example in situations where one userspace process doesn't know about operations another process does. E.g. for backward compatibility with DRI2/3 for example. So we will always have a mixture of implicit fences and explicit fences. The approach we used for amdgpu is that we implicit wait for all fences which the initiator of an operation can't know about (e.g. from another process or kernel internally) and explicitly wait for all additional fences provided by the initiator or an operation. Regards, Christian. > -Chris >