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