[PATCH 0/4] Etnaviv GPU scheduler
Lucas Stach
l.stach at pengutronix.de
Wed Dec 6 17:10:48 UTC 2017
Hi all,
this hooks up the AMDGPU/DRM GPU scheduler in etnaviv. This depends on both
the etnaviv job lifetime fixes series, as well as the AMDGPU scheduler move.
Please keep this in mind while reviewing.
The scheduler has 4 main benefits to etnaviv:
1. Cross GPU/device synchronization is handled in the kernel without blocking
the submitting userspace process.
2. Fairness in GPU time is improved, as all processes get to submit to the
HW in a round robin fashion. Before this a single application could
pretty much DoS the GPU by submitting jobs with minimal dependencies.
3. GPU resets loose a lot less state. The scheduler keeps track of the
HW submitted jobs and replays innocent jobs after a GPU reset. Thus
isolation between different processes using the GPU is improved as
a process hanging the GPU will not impact other jobs anymore.
4. It provides useful tracepoints to keep track of the GPU execution.
Regards,
Lucas
Lucas Stach (4):
drm/etnaviv: hook up DRM GPU scheduler
drm/etnaviv: move dependency handling to scheduler
drm/etnaviv: lock BOs after all other submit work is done
drm/etnaviv: replace hangcheck with scheduler timeout
drivers/gpu/drm/etnaviv/Kconfig | 1 +
drivers/gpu/drm/etnaviv/Makefile | 3 +-
drivers/gpu/drm/etnaviv/etnaviv_drv.c | 16 ++
drivers/gpu/drm/etnaviv/etnaviv_drv.h | 7 +-
drivers/gpu/drm/etnaviv/etnaviv_dump.c | 21 ++-
drivers/gpu/drm/etnaviv/etnaviv_gem.h | 4 +
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 65 ++++---
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 250 +++++----------------------
drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 28 +--
drivers/gpu/drm/etnaviv/etnaviv_sched.c | 169 ++++++++++++++++++
drivers/gpu/drm/etnaviv/etnaviv_sched.h | 34 ++++
11 files changed, 339 insertions(+), 259 deletions(-)
create mode 100644 drivers/gpu/drm/etnaviv/etnaviv_sched.c
create mode 100644 drivers/gpu/drm/etnaviv/etnaviv_sched.h
--
2.11.0
More information about the dri-devel
mailing list