On 7/3/19 10:53 AM, Lucas Stach wrote: > Am Mittwoch, den 03.07.2019, 14:41 +0000 schrieb Grodzovsky, Andrey: >> On 7/3/19 10:32 AM, Lucas Stach wrote: >>> Am Mittwoch, den 03.07.2019, 14:23 +0000 schrieb Grodzovsky, Andrey: >>>> On 7/3/19 6:28 AM, Lucas Stach wrote: >>>>> drm_sched_entity_kill_jobs_cb() is called right from the last scheduled >>>>> job finished fence signaling. As this might happen from IRQ context we >>>>> now end up calling the GPU driver free_job callback in IRQ context, while >>>>> all other paths call it from normal process context. >>>>> >>>>> Etnaviv in particular calls core kernel functions that are only valid to >>>>> be called from process context when freeing the job. Other drivers might >>>>> have similar issues, but I did not validate this. Fix this by punting >>>>> the cleanup work into a work item, so the driver expectations are met. >>>>> >>>>>>> Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> >>>>> --- > [...] > >>>> I rechecked the latest code and finish_work was removed in ffae3e5 >>>> 'drm/scheduler: rework job destruction' >>> Aw, thanks. Seems this patch was stuck for a bit too long in my >>> outgoing queue. I've just checked the commit you pointed out, it should >>> also fix the issue that this patch was trying to fix. >> >> Not sure about this as you patch only concerns use case when cleaning >> unfinished job's for entity being destroyed. > AFAICS after ffae3e5 all the free_job invocations are done from process > context, so things should work for etnaviv. > > Regards, > Lucas Actually for jobs that were never submitted to HW your change actually makes sense as those will still get cleaned from IRQ context when entity->last_scheduled will signal. Andrey _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel