linux/drivers/gpu/drm/etnaviv
Lucas Stach 704d3d60fe drm/etnaviv: don't block scheduler when GPU is still active
Since 45ecaea738 ("drm/sched: Partial revert of 'drm/sched: Keep
s_fence->parent pointer'") still active jobs aren't put back in the
pending list on drm_sched_start(), as they don't have a active
parent fence anymore, so if the GPU is still working and the timeout
is extended, all currently active jobs will be freed.

To avoid prematurely freeing jobs that are still active on the GPU,
don't block the scheduler until we are fully committed to actually
reset the GPU.

As the current job is already removed from the pending list and
will not be put back when drm_sched_start() isn't called, we must
make sure to put the job back on the pending list when extending
the timeout.

Cc: stable@vger.kernel.org #6.0
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com>
2024-06-26 15:33:25 +02:00
..
cmdstream.xml.h drm/etnaviv: Update hardware headers from rnndb 2024-05-16 19:06:33 +02:00
common.xml.h drm/etnaviv: Update hardware headers from rnndb 2024-05-16 19:06:33 +02:00
etnaviv_buffer.c drm/etnaviv: slow down FE idle polling 2023-06-21 15:18:14 +02:00
etnaviv_cmd_parser.c drm/etnaviv: add sensitive state for PE_RT_ADDR_4_PIPE(3, 0|1) address 2024-01-23 10:20:21 +01:00
etnaviv_cmdbuf.c drm/etnaviv: drop GPU initialized property 2023-07-17 11:32:31 +02:00
etnaviv_cmdbuf.h
etnaviv_drv.c - various code cleanups 2024-03-08 12:36:55 +10:00
etnaviv_drv.h drm/etnaviv: allocate unique ID per drm_file 2023-02-07 20:49:54 +01:00
etnaviv_dump.c drm/etnaviv: switch devcoredump allocations to GFP_NOWAIT 2024-06-26 15:31:33 +02:00
etnaviv_dump.h
etnaviv_gem_prime.c drm/etnaviv: fix reference leak when mmaping imported buffer 2023-03-30 17:47:05 +02:00
etnaviv_gem_submit.c drm/sched: implement dynamic job-flow control 2023-11-10 02:54:29 +01:00
etnaviv_gem.c drm/etnaviv: fix DMA direction handling for cached RW buffers 2024-06-26 15:31:58 +02:00
etnaviv_gem.h drm/etnaviv: move runtime PM handling to events 2023-07-17 11:32:13 +02:00
etnaviv_gpu.c drm/etnaviv: reduce number of ktime_get calls in IRQ handler 2024-06-26 15:32:47 +02:00
etnaviv_gpu.h drm/etnaviv: Read some FE registers twice 2024-06-19 20:35:14 +02:00
etnaviv_hwdb.c Revert "drm/etnaviv: Expose a few more chipspecs to userspace" 2024-04-25 16:56:20 +02:00
etnaviv_iommu_v2.c drm/etnaviv: reference MMU context when setting up hardware state 2021-09-16 10:35:33 +02:00
etnaviv_iommu.c drm/etnaviv: reference MMU context when setting up hardware state 2021-09-16 10:35:33 +02:00
etnaviv_mmu.c drm/etnaviv: Drop the 'len' parameter of etnaviv_iommu_map() function 2024-01-23 10:20:20 +01:00
etnaviv_mmu.h drm/etnaviv: move idle mapping reaping into separate function 2022-08-26 21:36:47 +02:00
etnaviv_perfmon.c drm/etnaviv: Replace strncpy with strscpy_pad 2023-10-11 18:50:01 +02:00
etnaviv_perfmon.h
etnaviv_sched.c drm/etnaviv: don't block scheduler when GPU is still active 2024-06-26 15:33:25 +02:00
etnaviv_sched.h drm/etnaviv: Use scheduler dependency handling 2022-04-04 16:45:49 +02:00
Kconfig
Makefile
state_3d.xml.h
state_blt.xml.h drm/etnaviv: Update hardware headers from rnndb 2024-05-16 19:06:33 +02:00
state_hi.xml.h drm/etnaviv: Update hardware headers from rnndb 2024-05-16 19:06:33 +02:00
state.xml.h drm/etnaviv: Update hardware headers from rnndb 2024-05-16 19:06:33 +02:00