Refcounting in drm_exec

Thomas Hellström thomas at shipmail.org
Thu Aug 31 15:45:17 UTC 2023


On 8/31/23 17:19, Christian König wrote:
> Hi Thomas,
>
> Am 31.08.23 um 17:12 schrieb Thomas Hellström:
>> Hi, Christian, Danilo
>>
>> Looking at the drm_exec code it seems we refcount *all* locked 
>> objects until drm_exec_fini(). Are callers supposed to be able to 
>> *rely* on this?
>
> Yes, that's one of the motivations for this component.


OK, isn't that a pretty big overhead?


>
>> I'm asking because refcounting appears only strictly necessary for 
>> contended- and prelocked objects, and callers would otherwise need to 
>> make sure they don't drop a locked object across the lock? It's going 
>> to be pretty hard to change this in the future if we want for added 
>> efficiency if people start to rely on it.
>>
>> Also seems drm_exec_unlock_all() drops the prelocked object without 
>> unlocking. I'll put together a patch.
>
> That's correct behavior.
>
> The prelocked object is part of the locked objects array as well. So 
> we just need to drop the reference.
>
> This was actually a bug in one of the earlier versions.

Hmm. I just got a warning that drm_exec_unlock_all() freed a locked 
object. Need to dig a bit deeper then.

/Thomas


>
> Regards,
> Christian.
>
>>
>> Thanks,
>>
>> Thomas'
>>


More information about the dri-devel mailing list