[PATCH 00/31] Add GPU scheduler to amdgpu
Alex Deucher
alexdeucher at gmail.com
Fri Jul 31 15:22:16 PDT 2015
This patch set implements a basic GPU scheduler for amdgpu.
A GPU scheduler is required for proper GPU reset and optimal
utilization of hw resources. It's currently disabled by default
as there are a few things we'd like to improve first:
- better integration with kernel fences
- clean up scheduler involvement in the ISR
Enable it with amdgpu.enable_scheduler=1.
Performance is comparable to the non-scheduler paths.
Patches are also available in the drm-next-4.3-wip branch
of my git tree:
http://cgit.freedesktop.org/~agd5f/linux/log/?h=drm-next-4.3-wip
Christian König (1):
drm/amdgpu: fix syncing to VM updates
Chunming Zhou (20):
drm/amdgpu: add context entity init
drm/amdgpu: disable hw semaphore with scheduler
drm/amdgpu: add backend implementation of gpu scheduler (v2)
drm/amdgpu: add bo list copy
drm/amdgpu: dispatch jobs in cs
drm/amdgpu: use scheduler user seq instead of previous user seq
drm/amdgpu: make sure the fence is emitted before ring to get it.
drm/amdgpu: prepare job before push to sw queue for pte ring
drm/amdgpu: add kernel ctx support (v2)
drm/amdgpu: dispatch job for vm
drm/amdgpu: add sched isr to fence process
drm/amdgpu: protect fence_process from multiple context
drm/amdgpu: add check for callback
drm/amdgpu: wait forever for wait emit
drm/amdgpu: fix seq in ctx_add_fence
drm/amdgpu: add helper function for kernel submission
drm/amdgpu: Use gpu scheduler for gfx ring ib test
drm/amdgpu: use gpu scheduler for sdma ib test
drm/amdgpu: use scheduler for UVD ib test
drm/amdgpu: use scheduler for VCE ib test
Jammy Zhou (6):
drm/amd: add basic scheduling framework
drm/amdgpu: add scheduler initialization
drm/amdgpu: add enable_scheduler module option
drm/amdgpu: silent the message for GPU scheduler creation
drm/amdgpu: add amdgpu.sched_jobs option
drm/amdgpu: add amdgpu.sched_hw_submission option
monk.liu (4):
drm/amdgpu: use kernel fence interface when possible
drm/amdgpu: new implement for fence_wait_any (v2)
drm/amdgpu: re-implement fence_default_wait
drm/amdgpu: move wait_queue_head from adev to ring (v2)
drivers/gpu/drm/amd/amdgpu/Makefile | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 63 ++-
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 50 +++
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 234 ++++++++---
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 156 ++++++--
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 9 +
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 12 +
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 372 ++++++++----------
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 145 +++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 21 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 61 ++-
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 158 ++++----
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 245 +++++++++---
drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 26 +-
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 28 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 27 +-
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 27 +-
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 26 +-
drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 532 ++++++++++++++++++++++++++
drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 159 ++++++++
23 files changed, 1861 insertions(+), 511 deletions(-)
create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
create mode 100644 drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
create mode 100644 drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
--
1.8.3.1
More information about the dri-devel
mailing list