Chunming Zhou
a3348bb801
drm/amdgpu: don't need to use bo_list_clone any more
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-20 17:02:58 -04:00
Chunming Zhou
3c4adead84
drm/amdgpu: some clean up for cs_ioctl
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-20 17:02:09 -04:00
Chunming Zhou
4fe6311734
drm/amdgpu: prepare job should be common code path
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-20 17:01:32 -04:00
Chunming Zhou
bb977d3711
drm/amdgpu: abstract amdgpu_job for scheduler
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-20 17:00:35 -04:00
Marek Olšák
6055f37afd
drm/amdgpu: bump the DRM version for new allowed mem-mapped registers
...
Used by mesa, etc. for profiling.
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com >
Signed-off-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-20 16:22:51 -04:00
Bas Nieuwenhuizen
05906dec7d
drm/amdgpu: wait on page directory changes. v2
...
Pagetables can be moved and therefore the page directory update can be necessary
for the current cs even if none of the the bo's are moved. In that scenario
there is no fence between the sdma0 and gfx ring, so we add one.
v2 (chk): rebased
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:23 -04:00
Christian König
432a4ff8b7
drm/amdgpu: cleanup sheduler rq handling v2
...
Rework run queue implementation, especially remove the odd list handling.
v2: cleanup the code only, no algorithem change.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:22 -04:00
Chunming Zhou
c3b95d4f9e
drm/amdgpu: move prepare work out of scheduler to cs_ioctl
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-17 16:51:21 -04:00
Chunming Zhou
1c8f805af9
drm/amdgpu: fix unnecessary wake up
...
decrease CPU extra overhead.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-17 16:51:20 -04:00
monk.liu
6d1d0ef743
drm/amdgpu: fix duplicated mapping invoke bug
...
fix the bug that there is duplicated bo_update_mapping issued
Signed-off-by: monk.liu <monk.liu@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
2015-08-17 16:51:20 -04:00
monk.liu
1939e3e265
drm/amdgpu: drop bo_list_clone when no scheduler
...
bo_list_clone() will take a lot of time when bo_list hold too much
elements, like above 7000
Signed-off-by: Monk.Liu <monk.liu@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Jammy Zhou <jammy.zhou@amd.com >
2015-08-17 16:51:19 -04:00
Alex Deucher
a895c222e7
drm/amdgpu: disable GPU reset by default
...
It's not validated yet and causes more harm than good.
Avoids spurious resets.
Reviewed-by: Leo Liu <leo.liu@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:19 -04:00
monk.liu
a8f5bf0b22
drm/amdgpu: fix type mismatch error
...
remaining timeout returned by amdgpu_fence_wait_any can be larger than
max int value, thus the truncated 32 bit value in r ends up being
negative while its original long value is positive.
Signed-off-by: monk.liu <monk.liu@amd.com >
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Jammy Zhou <jammy.zhou@amd.com >
2015-08-17 16:51:18 -04:00
Chunming Zhou
281b422301
drm/amdgpu: add reference for **fence
...
fix fence is released when pass to **fence sometimes.
add reference for it.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-17 16:51:17 -04:00
Christian König
1ffd265243
drm/amdgpu: fix waiting for all fences before flipping
...
Otherwise we might see corruption.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:17 -04:00
Christian König
4127a59e0b
drm/amdgpu: fix UVD return code checking
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Tested-and-Reviewed-by: Leo Liu <leo.liu@amd.com >
2015-08-17 16:51:16 -04:00
Christian König
5b232c2a71
drm/amdgpu: remove scheduler fence list v2
...
Unused and missing proper locking.
v2: add locking comment to commit message.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com > (v1)
2015-08-17 16:51:16 -04:00
Christian König
05caae8515
drm/amdgpu: remove amd_sched_wait_emit v2
...
Not used any more.
v2: remove amd_sched_emit as well.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:15 -04:00
Christian König
2983e5cef3
drm/amdgpu: remove unecessary scheduler fence callbacks
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:14 -04:00
Christian König
db789d3451
drm/amdgpu: fix scheduler fence implementation
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:14 -04:00
Daniel Vetter
5516ab86a8
drm/amdgpu: don't grab dev->struct_mutex in pm functions
...
Similar to radeon, except that amdgpu doesn't even use struct_mutex to
protect anything like the shared z buffer (sane gpu architecture,
yay!). And the code already grabs the globa adev->ring_lock, so this
code can't race with itself. Which makes struct_mutex completely
redundnant. Remove it.
Cc: Alex Deucher <alexander.deucher@amd.com >
Cc: "Christian König" <christian.koenig@amd.com >
Reviewed-by: Thierry Reding <treding@nvidia.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:13 -04:00
Daniel Vetter
db4448f78d
drm/amdgpu: Don't take dev->struct_mutex in bo_force_delete
...
It really doesn't protect anything which doesn't have other locks
already. Also this is run from driver unload code so not much need for
locks anyway.
Same changes as for radeon really.
Cc: Alex Deucher <alexander.deucher@amd.com >
Cc: "Christian König" <christian.koenig@amd.com >
Reviewed-by: Thierry Reding <treding@nvidia.com >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:13 -04:00
Christian König
c548b345d1
drm/amdgpu: remove VI hw bug workaround v3
...
The workaround simply doesn't work because VM mappings
are controlled by userspace not the kernel.
Additional to that this is just a performance problem
which happens if you have holes in your VM mapping.
v2: adjust virtual addr alignment as well.
v3: fix trivial warning
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Monk Liu <monk.liu@amd.com > (v1)
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com > (v2)
2015-08-17 16:51:11 -04:00
Christian König
00d2a2b21d
drm/amdgpu: cleanup amdgpu_fence_ring_wait_seq
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:10 -04:00
Christian König
68ed3de434
drm/amdgpu: remove duplicate amdgpu_fence_process implementation
...
Looks like that somehow got missed while during porting the radeon changes.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:10 -04:00
Christian König
02bc0650bc
drm/amdgpu: remove amdgpu_fence_wait
...
It was just a wrapper for fence_wait anyway.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:09 -04:00
Christian König
713293b825
drm/amdgpu: use the reservation obj wait for the UVD msg
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:08 -04:00
Christian König
3cdb8119d9
drm/amdgpu: remove amdgpu_fence_signaled
...
The common kernel function does the same thing.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:51:08 -04:00
Chunming Zhou
f556cb0cae
drm/amd: add scheduler fence implementation (v2)
...
scheduler fence is based on kernel fence framework.
v2: squash in Christian's build fix
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-17 16:51:07 -04:00
Chunming Zhou
4af9f07ccd
drm/amdgpu: use kernel submit helper in vm
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-17 16:51:07 -04:00
Chunming Zhou
953e8fd4e7
drm/amdgpu: use amd_sched_job in its backend ops
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-17 16:51:06 -04:00
Christian König
6f0e54a964
drm/amdgpu: cleanup and fix scheduler fence handling v2
...
v2: rebased
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com > (v1)
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:05 -04:00
Christian König
91404fb208
drm/amdgpu: merge amd_sched_entity and amd_context_entity v2
...
Avoiding a couple of casts.
v2: rename c_entity to entity as well
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:05 -04:00
Christian König
4cd7f42cf8
drm/amdgpu: fix coding style in a couple of places
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:04 -04:00
Christian König
ddf94d33d6
drm/amdgpu: remove unused parent entity
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:03 -04:00
Chunming Zhou
4cef92670b
drm/amdgpu: process sched job exactly triggered by fence signal
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-17 16:51:03 -04:00
Chunming Zhou
80de5913cf
Revert "drm/amdgpu: return new seq_no for amd_sched_push_job"
...
This reverts commit d1d33da8eb86b8ca41dd9ed95738030df5267b95.
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
Conflicts:
drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
2015-08-17 16:51:02 -04:00
Christian König
47f38501f1
drm/amdgpu: cleanup amdgpu_ctx inti/fini v2
...
Cleanup the kernel context handling.
v2: rebased
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com > (v1)
2015-08-17 16:51:02 -04:00
Christian König
0e89d0c16b
drm/amdgpu: stop leaking the ctx id into the scheduler v2
...
Id's are for the IOCTL ABI only.
v2: remove tgid as well
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:01 -04:00
Christian König
efd4ccb59a
drm/amdgpu: cleanup ctx_mgr init/fini
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:00 -04:00
Christian König
34cb581a7d
drm/amdgpu: fix bo list handling in CS
...
We didn't initialized the mutex in the cloned bo list resulting in nice
warnings from lockdep. Also fixes error handling in this function.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:51:00 -04:00
Christian König
351dba7369
drm/amdgpu: reorder the code to avoid forward declerations
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-17 16:50:59 -04:00
Chunming Zhou
7484667c6a
drm/amdgpu: move sched job process from isr to fence callback
...
This way can avoid interrupt lost, and can process sched job exactly.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
2015-08-17 16:50:59 -04:00
Jammy Zhou
27f6642d06
drm/amdgpu: add amd_sched_next_queued_seq function
...
This function is used to get the next queued sequence number
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:50:58 -04:00
Jammy Zhou
63ad8d5882
drm/amdgpu: make last_handled_seq atomic
...
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:50:57 -04:00
Jammy Zhou
f95b7e3e86
drm/amdgpu: add amd_sched_commit
...
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 <Jammy.Zhou@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:50:57 -04:00
Jammy Zhou
ea199cc9f8
drm/amdgpu: return new seq_no for amd_sched_push_job
...
It is clean to update last_queued_v_seq in the scheduler module
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:50:56 -04:00
Jammy Zhou
dd01d07195
drm/amdgpu: some code refinement v2
...
Fix the code alignment, etc.
v2: rebase the code
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-17 16:50:56 -04:00
Chunming Zhou
03d3a3e634
drm/amdgpu: fix null pointer by previous cleanup
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-17 16:50:55 -04:00
Chunming Zhou
1763552ee8
drm/amdgpu: add kernel fence in ib_submit_kernel_helper
...
every sbumission should be able to get a fence.
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
Reviewed-by: Jammy Zhou <jammy.zhou@amd.com >
2015-08-17 16:50:54 -04:00