[PATCH v5 6/8] drm/panfrost: Support synchronization jobs
Steven Price
steven.price at arm.com
Mon Oct 4 13:05:25 UTC 2021
On 04/10/2021 13:24, Boris Brezillon wrote:
> On Mon, 4 Oct 2021 12:30:42 +0100
> Steven Price <steven.price at arm.com> wrote:
[...]
>>
>> It took me a while to convince myself that the reference counting for
>> the PM reference is correct. Before panfrost_job_hw_submit() always
>> returned with an extra reference, but now we have a case which doesn't.
>> AFAICT this is probably fine because we dereference on the path where
>> the hardware has completed the job (which obviously won't happen here).
>> But I'm still a bit uneasy whether the reference counts are always correct.
>
> I think it is. We only decrement the PM count in the interrupt handler
> path, and as you pointed out, we won't reach that path here. But if
> that helps, I can move this if to `panfrost_job_run()`:
>
> /* Nothing to execute, signal the fence directly. */
> if (job->requirements & PANFROST_JD_REQ_DEP_ONLY)
> dma_fence_signal_locked(job->done_fence);
> else
> panfrost_job_hw_submit(job, slot);
>
I think that would make it a bit more readable - really
panfrost_job_hw_submit() needs a bit of TLC, I did post a patch ages
ago[1] but it didn't get any feedback and then I forgot about it. Things
have moved on so it would need a little bit of rework.
Thanks,
Steve
[1]
https://lore.kernel.org/dri-devel/20210512152419.30003-1-steven.price@arm.com/
More information about the dri-devel
mailing list