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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel