Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2015-11-16 | drm/amdgpu: fix incorrect mutex usage v3 | Christian König | 1 | -17/+10 | |
Before this patch the scheduler fence was created when we push the job into the queue, so we could only get the fence after pushing it. The mutex now was necessary to prevent the thread pushing the jobs to the hardware from running faster than the thread pushing the jobs into the queue. Otherwise the thread pushing jobs into the queue would have accessed possible freed up memory when it tries to get a reference to the fence. So what you get in the end is thread A: mutex_lock(&job->lock); ... Kick of thread B. ... mutex_unlock(&job->lock); And thread B: mutex_lock(&job->lock); .... mutex_unlock(&job->lock); kfree(job); I'm actually not sure if I'm still up to date on this, but this usage pattern used to be not allowed with mutexes. See here as well https://lwn.net/Articles/575460/. v2: remove unrelated changes, fix missing owner v3: rebased, add more commit message Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> | |||||
2015-11-16 | drm/amdgpu: cleanup scheduler fence get/put dance | Christian König | 1 | -1/+0 | |
The code was correct, but getting two references when the ownership is linearly moved on is a bit awkward and just overhead. Signed: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> | |||||
2015-11-16 | drm/amdgpu: add command submission workflow tracepoint | Chunming Zhou | 1 | -0/+2 | |
OGL needs these tracepoints to investigate performance issue. Change-Id: I5e58187d061253f7d665dfce8e4e163ba91d3e2b Signed-off-by: Chunming Zhou <[email protected]> | |||||
2015-10-30 | drm/amdgpu: remove amdgpu_fence_ref/unref | Christian König | 1 | -1/+2 | |
Just move the remaining users to fence_put/get. Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> | |||||
2015-09-23 | drm/amdgpu: more scheduler cleanups v2 | Christian König | 1 | -1/+1 | |
Embed the scheduler into the ring structure instead of allocating it. Use the ring name directly instead of the id. v2: rebased, whitespace cleanup Signed-off-by: Christian König <[email protected]> Reviewed-by: Junwei Zhang <[email protected]> Reviewed-by: Chunming Zhou<[email protected]> | |||||
2015-09-23 | drm/amdgpu: rename fence->scheduler to sched v2 | Christian König | 1 | -1/+1 | |
Just to be consistent with the other members. v2: rename the ring member as well. Signed-off-by: Christian König <[email protected]> Reviewed-by: Junwei Zhang <[email protected]> (v1) Reviewed-by: Chunming Zhou<[email protected]> | |||||
2015-09-23 | drm/amdgpu: refine the scheduler job type conversion | Junwei Zhang | 1 | -3/+3 | |
Use container_of rather than casting. Reviewed-by: Christian König <[email protected]> Reviewed-by: David Zhou <[email protected]> Signed-off-by: Junwei Zhang <[email protected]> | |||||
2015-09-23 | drm/amdgpu: refine the job naming for amdgpu_job and amdgpu_sched_job | Junwei Zhang | 1 | -18/+18 | |
Use consistent naming across functions. Reviewed-by: Christian König <[email protected]> Reviewed-by: David Zhou <[email protected]> Signed-off-by: Junwei Zhang <[email protected]> | |||||
2015-09-23 | drm/amdgpu: remove process_job callback from the scheduler | Christian König | 1 | -22/+7 | |
Just free the resources immediately after submitting the job. Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> Reviewed-by: Junwei Zhang <[email protected]> Reviewed-by: Jammy Zhou <[email protected]> | |||||
2015-08-28 | drm/amdgpu: add scheduler dependency callback v2 | Christian König | 1 | -0/+7 | |
This way the scheduler doesn't wait in it's work thread any more. v2: fix race conditions Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> Reviewed-by: Jammy Zhou <[email protected]> | |||||
2015-08-26 | drm/amdgpu: remove extra parameters from scheduler callbacks | Christian König | 1 | -7/+4 | |
Signed-off-by: Christian König <[email protected]> Acked-by: Alex Deucher <[email protected]> Reviewed-by: Jammy Zhou <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> | |||||
2015-08-25 | drm/amdgpu: fix last_vm_update fence is not effetive for sched fence | Chunming Zhou | 1 | -0/+1 | |
Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-25 | drm/amdgpu: add owner for sched fence | Chunming Zhou | 1 | -2/+2 | |
Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-25 | drm/amdgpu: fix and cleanup amd_sched_entity_push_job | Christian König | 1 | -1/+1 | |
Calling schedule() is probably the worse things we can do. Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> | |||||
2015-08-25 | drm/amdgpu: remove v_seq handling from the scheduler v2 | Christian König | 1 | -1/+0 | |
Simply not used any more. Only keep 32bit atomic for fence sequence numbering. v2: trivial rebase Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> (v1) Reviewed-by: Jammy Zhou <[email protected]> (v1) Reviewed-by: Chunming Zhou <[email protected]> (v1) | |||||
2015-08-20 | drm/amdgpu: free the job immediately after dispatching it | Christian König | 1 | -4/+3 | |
Fixes a whole bunch of lockdep warnings. Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> | |||||
2015-08-20 | drm/amdgpu: abstract amdgpu_job for scheduler | Chunming Zhou | 1 | -54/+34 | |
Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-17 | drm/amdgpu: add reference for **fence | Chunming Zhou | 1 | -2/+2 | |
fix fence is released when pass to **fence sometimes. add reference for it. Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-17 | drm/amdgpu: remove amd_sched_wait_emit v2 | Christian König | 1 | -2/+0 | |
Not used any more. v2: remove amd_sched_emit as well. Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> | |||||
2015-08-17 | drm/amd: add scheduler fence implementation (v2) | Chunming Zhou | 1 | -17/+17 | |
scheduler fence is based on kernel fence framework. v2: squash in Christian's build fix Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-17 | drm/amdgpu: use kernel submit helper in vm | Chunming Zhou | 1 | -2/+2 | |
Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-17 | drm/amdgpu: use amd_sched_job in its backend ops | Chunming Zhou | 1 | -17/+17 | |
Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-17 | drm/amdgpu: cleanup and fix scheduler fence handling v2 | Christian König | 1 | -18/+8 | |
v2: rebased Signed-off-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> (v1) Reviewed-by: Chunming Zhou <[email protected]> | |||||
2015-08-17 | drm/amdgpu: merge amd_sched_entity and amd_context_entity v2 | Christian König | 1 | -6/+6 | |
Avoiding a couple of casts. v2: rename c_entity to entity as well Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> | |||||
2015-08-17 | drm/amdgpu: process sched job exactly triggered by fence signal | Chunming Zhou | 1 | -6/+13 | |
Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-17 | Revert "drm/amdgpu: return new seq_no for amd_sched_push_job" | Chunming Zhou | 1 | -2/+7 | |
This reverts commit d1d33da8eb86b8ca41dd9ed95738030df5267b95. Reviewed-by: Christian K?nig <[email protected]> Conflicts: drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |||||
2015-08-17 | drm/amdgpu: cleanup amdgpu_ctx inti/fini v2 | Christian König | 1 | -5/+3 | |
Cleanup the kernel context handling. v2: rebased Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> (v1) | |||||
2015-08-17 | drm/amdgpu: move sched job process from isr to fence callback | Chunming Zhou | 1 | -0/+13 | |
This way can avoid interrupt lost, and can process sched job exactly. Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Jammy Zhou <[email protected]> | |||||
2015-08-17 | drm/amdgpu: add amd_sched_commit | Jammy Zhou | 1 | -3/+2 | |
This function is to update last_emitted_v_seq and wake up the waiters. It should be called by driver in the run_job backend function Signed-off-by: Jammy Zhou <[email protected]> Reviewed-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> | |||||
2015-08-17 | drm/amdgpu: return new seq_no for amd_sched_push_job | Jammy Zhou | 1 | -7/+2 | |
It is clean to update last_queued_v_seq in the scheduler module Signed-off-by: Jammy Zhou <[email protected]> Reviewed-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> | |||||
2015-08-17 | drm/amdgpu: some code refinement v2 | Jammy Zhou | 1 | -4/+5 | |
Fix the code alignment, etc. v2: rebase the code Signed-off-by: Jammy Zhou <[email protected]> Reviewed-by: Christian König <[email protected]> Reviewed-by: Alex Deucher <[email protected]> | |||||
2015-08-17 | drm/amdgpu: fix null pointer by previous cleanup | Chunming Zhou | 1 | -4/+0 | |
Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-17 | drm/amdgpu: add kernel fence in ib_submit_kernel_helper | Chunming Zhou | 1 | -2/+6 | |
every sbumission should be able to get a fence. Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> Reviewed-by: Jammy Zhou <[email protected]> | |||||
2015-08-17 | drm/amdgpu: clean up amd sched wait_ts and wait_signal | Christian König | 1 | -6/+0 | |
Remove code not used at the moment. Signed-off-by: Christian König <[email protected]> Reviewed-by: Chunming Zhou <[email protected]> | |||||
2015-08-17 | drm/amdgpu: add helper function for kernel submission | Chunming Zhou | 1 | -0/+35 | |
Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-17 | drm/amdgpu: fix seq in ctx_add_fence | Chunming Zhou | 1 | -2/+2 | |
if enabling scheduler, then the queued seq is assigned when pushing job before emitting job. Signed-off-by: Chunming Zhou <[email protected]> Reviewed-by: Christian K?nig <[email protected]> | |||||
2015-08-17 | drm/amdgpu: make sure the fence is emitted before ring to get it. | Chunming Zhou | 1 | -1/+4 | |
Signed-off-by: Chunming Zhou <[email protected]> Acked-by: Christian K?nig <[email protected]> Reviewed-by: Jammy Zhou <[email protected]> | |||||
2015-08-17 | drm/amdgpu: add backend implementation of gpu scheduler (v2) | Chunming Zhou | 1 | -0/+107 | |
v2: fix rebase breakage Signed-off-by: Chunming Zhou <[email protected]> Acked-by: Christian K?nig <[email protected]> Reviewed-by: Jammy Zhou <[email protected]> |