lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <17629989-891c-4026-b9d6-3e1403adba6c@kapsi.fi>
Date: Wed, 9 Jul 2025 10:28:46 +0900
From: Mikko Perttunen <cyndis@...si.fi>
To: Christian König <christian.koenig@....com>,
 Sumit Semwal <sumit.semwal@...aro.org>, Gustavo Padovan <gustavo@...ovan.org>
Cc: linux-media@...r.kernel.org, dri-devel@...ts.freedesktop.org,
 linaro-mm-sig@...ts.linaro.org, linux-kernel@...r.kernel.org,
 Mikko Perttunen <mperttunen@...dia.com>
Subject: Re: [PATCH] dma_buf/sync_file: Enable signaling for fences when
 querying status

On 7/8/25 11:20 PM, Christian König wrote:
> On 08.07.25 14:03, Mikko Perttunen wrote:
>> From: Mikko Perttunen <mperttunen@...dia.com>
>>
>> dma_fence_get_status is not guaranteed to return valid information
>> on if the fence has been signaled or not if SW signaling has not
>> been enabled for the fence. To ensure valid information is reported,
>> enable SW signaling for fences before getting their status.
> 
> I don't know how often I had to rejected that patch now, we really need to improve the documentation :(

Sorry :(

Improved documentation certainly would be good. I've thought of SW 
signaling as a kernel-side 'optimization' and not something that would 
be visible to the user space. Perhaps documentation could also mention 
situations where calling this without enabling signaling is useful. 
Anyway, I'll fix our issue in userspace by adding the zero-timeout poll 
instead.

Thanks!
Mikko

> 
> The fence info query exists to query the status *without* enabling signaling, that is the whole purpose of the function!
> 
> If you want to enable signaling *and* query the status then just poll on the sync file file descriptor with a zero timeout.
> 
> If the signaling timestamp or error code is needed then that can be retrieved after signaling through the info IOCTL.
> 
> Regards,
> Christian.
> 
>>
>> Signed-off-by: Mikko Perttunen <mperttunen@...dia.com>
>> ---
>>   drivers/dma-buf/sync_file.c | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c
>> index 747e377fb95417ddd506b528618a4288bea9d459..a6fd1d14dde155561b9fd2c07e6aa20dc9863a8d 100644
>> --- a/drivers/dma-buf/sync_file.c
>> +++ b/drivers/dma-buf/sync_file.c
>> @@ -271,6 +271,8 @@ static int sync_fill_fence_info(struct dma_fence *fence,
>>   	const char __rcu *timeline;
>>   	const char __rcu *driver;
>>   
>> +	dma_fence_enable_sw_signaling(fence);
>> +
>>   	rcu_read_lock();
>>   
>>   	driver = dma_fence_driver_name(fence);
>> @@ -320,6 +322,7 @@ static long sync_file_ioctl_fence_info(struct sync_file *sync_file,
>>   	 * info->num_fences.
>>   	 */
>>   	if (!info.num_fences) {
>> +		dma_fence_enable_sw_signaling(sync_file->fence);
>>   		info.status = dma_fence_get_status(sync_file->fence);
>>   		goto no_fences;
>>   	} else {
>>
>> ---
>> base-commit: 58ba80c4740212c29a1cf9b48f588e60a7612209
>> change-id: 20250708-syncfile-enable-signaling-a993acff1860
>>
> 


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ