[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