From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751451AbcFXJ16 (ORCPT ); Fri, 24 Jun 2016 05:27:58 -0400 Received: from mail-bl2on0083.outbound.protection.outlook.com ([65.55.169.83]:58965 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751001AbcFXJ14 (ORCPT ); Fri, 24 Jun 2016 05:27:56 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Christian.Koenig@amd.com; Subject: Re: [RFC 0/5] rework fences on struct sync_file To: Gustavo Padovan , References: <1466695790-2833-1-git-send-email-gustavo@padovan.org> CC: , Daniel Stone , , Daniel Vetter , , , Gustavo Padovan , John Harrison , From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <576CFD0B.6000501@amd.com> Date: Fri, 24 Jun 2016 11:27:39 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <1466695790-2833-1-git-send-email-gustavo@padovan.org> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [2a02:908:1251:a381:c0e5:3254:412a:a7dd] X-ClientProxiedBy: AM4PR02CA0038.eurprd02.prod.outlook.com (10.165.239.176) To BN3PR1201MB0914.namprd12.prod.outlook.com (10.165.76.14) X-MS-Office365-Filtering-Correlation-Id: ea763813-174a-488e-e10c-08d39c11d118 X-Microsoft-Exchange-Diagnostics: 1;BN3PR1201MB0914;2:r63d9C7XcjljlVn1QnGy/+x5YdsmaAfCpGAe9g9in5Jz6TNi+M0eXcxQvQ7YsK8melL7krWrRir643BMTXL/1Z4ZU8eahxUFWqjpY3OoEPIul+2t/xbJ+XyWjKGIV1LyxVrn8g8VjKcLNiGJxCyQm1x9zVgT9KzZ0zeuJYG8LtY7NRjEif7CQT/7lwxOVpvl;3:Gy4TdSAqJy7OKVnONzQi0k3n5EiMjfEsfyWbdiPCZNDzbB5nu/Lrs7m+q5EDCiawcDS4v+hA+bZjRrkM2RMGsaon+AIFcOlyOFx8BN7F/Olkc8xHGEcGejcmobPRYuKx;25:tdTH4xj8wrwPKQWUnHGMyA7BOLkPM9nEDlTw9KeyVdznse23jMm96w0tqFNPe7SGtAiv7QV+JXt+wpCtxktH0/t7xYVLYUH25doWjsCZwMcsIU6EY5Wgk7eqOJEkhseTisLOPQsCi1hAYD90PF0WjszznlbHgu5dUm1YRfDmNY1XLhu1gwVOtWfWdJ5rRNq48muCi3rHb68Ev4IGkfZ32QM5bgkkvzn5b+TP2lA/3QiCS0bP45czrX1NrG/5HlfJ6BnA+jMaJCC0MQPGTEuq3Ai+avA5x95QnX7Lv4TkHALOxYZC+xNKCR3yySn3Z5dMguwuFXVpQ29MXnYsP02+d7EEYKDy1JxAVqidJZLZ3Ygv8KOz3UAHUzkun0uEVpD9BWt2UA0KmpVYcQuxhXRCDVpgDdq6kB8/btr6XRaCcVU= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR1201MB0914; X-Microsoft-Exchange-Diagnostics: 1;BN3PR1201MB0914;20:77fgRcljlX5e/X/Xw3h6Ww+74OlhpvZ4wcIs0teYBtlm309UO3zBVtvj4aB65V2EvLYMNXURKd5ayvGNtzX78vqt9lL9wiG+E1FTHEC84NDssHR6fIZcILFNptjb2e+4QIDL48dZGfxAyE0S5WJDKle9AkJti89tl8YFI/lPx+iwbgorAl9j5iUbS3cAC41qQ36Z7R06H+8zmQtoV41RFPNQU5B/A5OmSKYOgQqgo1CLJLrOP7eajCasK+ILHfwZfERb+jdCwZy26OgHXAw5xwYvUXPgMdkVNZmrkX85f+I1PmUQfufKP2PJLbEHMUYAqZjllJDUieFMOt8NCH7skYxuwzssabclCe9QJKmpRwMBix55rdzGeUKmeM13ty7wqk4+i1iKW+Zbb/kYe1FZ71vtQ7DhPwNLqFeDxmYmOPdnv/KnZEMm2eR0e5uoiDokTLXVf20hAhx+YsTR1GFTVYED/DedmLaEaPMdhPL/igHYY0u7anShSY81K14EkbE0;4:KCY8is93HP84b6ry7P6XUUmO5NMWCZ//m4tForopRmBjfCtQJg0+dlERNvUoK0VYk9Xq5wJXrC3LYqR0tTMWchmFklQ4vFwQAbFZcUcUGzGrYeFenxLkHrn04YdA7mXiwamHMbZ6Y8TB98FHBoRgobVNK5sQH2+38kDuUCxGkbHrwedP7OlZ62nTB0hCnLHRfLMGfkVSdNChWc9IH/oVgFDVWTP7PEag6hAlLg6ETwuIhDdcFQSYa+6FFQHf4A9BI+hA/7+ILKeWiwFt/wnr+mLnv19ttRe2pnYQIwAQb2v+aK35glsOQGCvO1KBDsm/aTMToNgOA+bksZpFTCNOETbRWkHMHC8MBIdeHEXnUJzLfwUKR3znRMMgx0pNravRHStZZ3028yGRJCyInXT9gA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:BN3PR1201MB0914;BCL:0;PCL:0;RULEID:;SRVR:BN3PR1201MB0914; X-Forefront-PRVS: 0983EAD6B2 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(53754006)(199003)(189002)(19580405001)(1706002)(80316001)(19580395003)(50466002)(189998001)(68736007)(81166006)(83506001)(81156014)(8676002)(65806001)(4001350100001)(65956001)(77096005)(36756003)(2950100001)(86362001)(97736004)(6116002)(47776003)(5001770100001)(586003)(87266999)(54356999)(50986999)(76176999)(42186005)(92566002)(33656002)(4326007)(7846002)(230700001)(59896002)(65816999)(23676002)(106356001)(305945005)(2906002)(105586002)(7736002)(101416001)(64126003)(3826002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR1201MB0914;H:[IPv6:2a02:908:1251:a381:c0e5:3254:412a:a7dd];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjNQUjEyMDFNQjA5MTQ7MjM6dWZpWjdWZnN5a25pS1VuVWNZTUZTMmFk?= =?utf-8?B?enhrQ25BYThkWVk0d01qbW9wQ1FoWWkvMG1kNnZSOG52RSswLzZocWNuVjJW?= =?utf-8?B?U0dXMFBKc1RuU1hPL0wzNWwzSXd0Z1hoSFpwekJTaU8wRXdvNkZnZlE4cHRu?= =?utf-8?B?MHNkY1NaL1FwK0JXT21wQ0xHckxFSEpFekFOY1VHMXFRd0YxaEQxdjBpRnha?= =?utf-8?B?WkkzQ0xNUGlRVkQzS2lscHdZTzJ6STdXYnFDMUZGS2Rkcy9DLzdwNTlYcXd0?= =?utf-8?B?UkRVWTJXd201dWRPdGt3Q1dUc1RqbnFBN3VZakcvc1FQVmxkc2hWaGN0aHIx?= =?utf-8?B?SytLY2Q5UVNRY25wYkxHdTlsWU9uMGlsdldjVW96WnJJcE43aWlrT0tuMitY?= =?utf-8?B?UHdtNlFKcjBGQURPbzloVG9VSUljUWdoTi82Vk5LK1grbitrc0xWNnlwVFNE?= =?utf-8?B?MGl1aUg3VWN1amRWcndUazhDamhkQS9IU3dBTzBZbjQ3RDl2dm1ROGU2Zlk4?= =?utf-8?B?VDBGL2dkajVMVHpCR1lyeFVReVd1a25adjVMeFBvZE9sbFdKZ1orZmhCVFhT?= =?utf-8?B?U0lLeVIzMmtVQUFnNHdJYzNNSUVuSThzWUhLNkQ3WGxTRi9ObHdIL3ltUUNG?= =?utf-8?B?bWI1VEVlTUQxeXFMaGkwR3RQQ3BxUk1vWm9BcjFpVVFwaWFKcS9JeS9yMmpu?= =?utf-8?B?T3hWczRQNWl0aitvWHU1Sk01Ry9TZFhOdHZGbldhOHBqQkxmeUJNZktILzVs?= =?utf-8?B?eDJ0NWJEZDhiRnM0bnozV29nN3RuMjY5ZTZTenlWeXV0d0lFNkZRdnIxT2RG?= =?utf-8?B?NWlzaE84ZGcxbG5SU1VTbXI2MVpVQS9mYzRZamhtQWg2aHFzQXJkdDg4RndY?= =?utf-8?B?YWtGR3dZZzdpeHYxMUtmYW5HTW1JVWdWRE5PYk9BYnkvalB4RUhKdU5LN3U4?= =?utf-8?B?ZDlQcFpWZnhxSkF2aUpMSFdKTGRHSWJ0aFhjTng2TFl5b0owL2FpQU9kOVlk?= =?utf-8?B?STJ5cWoxeVFvUWJGMXRpK2ZHTDVSdkhhUXUrTlZMMEVLdGl4UVcvbHQ5bUh0?= =?utf-8?B?Q2w4WjUvbzZFc25xNmw2bUdZWU1TMU83NWJTNGhPbWx5TlBvQ1JqRjNvZkZu?= =?utf-8?B?QlpDc0xsUUJVc3hSTXFHcDN4dkZEZUhnSUltcStDZ21pVUVHZVZCQ1VESmtn?= =?utf-8?B?NkpLNXRoai95cG1zZ0tyczRnL28wNHRaNnhXSitIMjJTTkhWY2JPaUQvNnF5?= =?utf-8?B?ZVZiTkViTVZvSktCTjdPQkRIUGVFRWwwZWRvbzJsWXpKa0pSVnUwK0x3MVA3?= =?utf-8?B?dXZIMWJSSFgwSHZ5ZjdKbmZUNzNNOHhPYTJTaWgraEV6VHhtSmllRzBxa0lt?= =?utf-8?B?SWFVVE1PWXlNREg0VDlHaEhsdDhpRE1SMWVEN0c5YzBJTU4vTmdHNHhYR055?= =?utf-8?B?UTlad1cvOEFCUTBWL3JLWEdPR2JXd3RhM2NCeURLZlNWdGVtOFltczJGaXlI?= =?utf-8?B?NllTTEJNaGQ3RU1SanFXWUZZRVQ4ZnNnWU9abDdZdlhSU3pqV1huWjh0SGRM?= =?utf-8?B?WENtZWdNNTU4bVI3eERVb0h3d1VjNW0ydUJoVTFscWhQblk0Skx4N01kbXhz?= =?utf-8?B?YWhJMHJtRjBubklKbG0zN25NYTVmMHd2VTBKYjdCRGNPRXdqclBFRWx6VHR2?= =?utf-8?Q?IDOOnj7OsHkQdSg6V04o=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR1201MB0914;6:Kgqx7S85L1ERmtO/B45TrIJqB3YDnO7FLi01tjxkvae3xz57+R2/YohqJkGcgCnpa6VA9D1GgxwAdZXiwdNwpO+QMmp42prM/kAYER4iLN9kusc/fn4Wp9DXLNsDZAy64cmYEy7rSkkCy8e24Grh+B/0z4H/nvFiGaZ9/Loeq8N5H4MQCfySAvnzxnGyAFReOMsbO1GfpZxr6loaLnRFmIHylzRivZU4x8E1yllKH798VA/m5zHiIFCZq1yxzEOwpvbduhm/4KniSmjrAB5RXKBf8BU8i4JD/1SNAMuG3nbs0KBCzaxo0FQvvpdCnKeWLHENtXb6IDevzRAQiX7jKy/asY7a0TYpM6ks60sxl9M=;5:7d/8oQ46pDgocOb7aHAgZCXEkkxl7fAEk74omXkmVLfP/ExTjrR64BYtsoGa10+a3Arbr1LkQw5ajzmjhHkh8wsEJAtVRpLwlnolPWd1nPtq/F3divIsd+/2WAk9/D7+sJnbs7Z0iXOMPLQWfn2YyA==;24:jY1PHSIxfiL1b8F+OiZszEGPYO7Syp3ruba5MCAfXcNadaAI5UTEAdNmSqyhe3X+svoVb+tNWzLLLScbJUH94mqX7pYYk0VHaFLpx1Xhb9c=;7:iH0Su6gLMw2welw/WNfIikbK1m4gETlRYQmBR48HT9PmUDyqKtE+Xt7yq4wt+/BtcJiMtWk778Ds7fHGRZZ+xne1e0RfhzL/nT2F9G+it8YIF4Ua9Zgib2ISgqhXcd6oZ1Fz/zoTQU+DNuzhT2ZyREGcnFPCaVlqXTfaou7QFgqUSo5GpWLyO2dmxi0w7j9kfRP02l3lA7ASCX5N4co1JZD46glG/9zeejSzq+PQNaPPOX8M2rTYDcatUUcuHCxBq59kqRNyDzCStb6+8V2c6g== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN3PR1201MB0914;20:ZX2ol0K+Ejvx3cU7t9abXeaBcnMp4N982hmsoddRHrXnhCjYnkOJb7saDd5NeiNJy47rLojvlOJrFrCpW/0njq9DCg8E1R1eDwbbw/hr3px56cOfP7SP91LEyJVjDb1jbSWPHnIZUCoHRHy2cx5/smw46qSCk8ynORH8saiNcMCqX3xVEm3mHA5Zf2wC2X5zRjI9WFmibrPHOvREJAeWpQ7tMOPVyKGimVTrijDzF+OkTdQQ0Gymwr8WdHCQ5TkK X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2016 09:27:51.0493 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR1201MB0914 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 23.06.2016 um 17:29 schrieb Gustavo Padovan: > From: Gustavo Padovan > > Hi all, > > This is an attempt to improve fence support on Sync File. The basic idea > is to have only sync_file->fence and store all fences there, either as > normal fences or fence_arrays. That way we can remove some potential > duplication when using fence_array with sync_file: the duplication of the array > of fences and the duplication of fence_add_callback() for all fences. > > Now when creating a new sync_file during the merge process sync_file_set_fence() > will set sync_file->fence based on the number of fences for that sync_file. If > there is more than one fence a fence_array is created. One important advantage > approach is that we only add one fence callback now, no matter how many fences > there are in a sync_file - the individual callbacks are added by fence_array. > > Two fence ops had to be created to help abstract the difference between handling > fences and fences_arrays: .teardown() and .get_fences(). The former run needed > on fence_array, and the latter just return a copy of all fences in the fence. > I'm not so sure about adding those two, speacially .get_fences(). What do you > think? Clearly not a good idea to add this a fence ops, cause those are specialized functions for only a certain fence implementation (the fence_array). What you should do is try to cast the fence in your sync file using to_fence_array() and then you can access the fences in the array. Regards, Christian. > > Please comment! Thanks. > > Gustavo > --- > > Gustavo Padovan (5): > dma-buf/fence: add .teardown() ops > dma-buf/fence-array: add fence_array_teardown() > dma-buf/fence: add .get_fences() ops > dma-buf/fence-array: add fence_array_get_fences() > dma-buf/sync_file: rework fence storage in struct file > > drivers/dma-buf/fence-array.c | 30 ++++++++ > drivers/dma-buf/fence.c | 21 ++++++ > drivers/dma-buf/sync_file.c | 129 +++++++++++++++++++++++++---------- > drivers/staging/android/sync_debug.c | 5 +- > include/linux/fence.h | 10 +++ > include/linux/sync_file.h | 12 ++-- > 6 files changed, 161 insertions(+), 46 deletions(-) >