Chunming Zhou
9066b0c318
drm/amdgpu: fix no sync_wait in copy_buffer
...
when eviction is happening, if don't handle
dependency, then the fence could be dead off.
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-25 10:53:48 -04:00
Chunming Zhou
3c62338c26
drm/amdgpu: fix last_vm_update fence is not effetive for sched fence
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:53:05 -04:00
Chunming Zhou
f38fdfddfa
drm/amdgpu: add priv data to sched
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:52:18 -04:00
Chunming Zhou
84f76ea6b0
drm/amdgpu: add owner for sched fence
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:51:32 -04:00
Christian König
c14692f0a7
drm/amdgpu: remove entity reference from sched fence
...
Entity don't live as long as scheduler fences.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:50:42 -04:00
Christian König
6c859274f3
drm/amdgpu: fix and cleanup amd_sched_entity_push_job
...
Calling schedule() is probably the worse things we can do.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:49:57 -04:00
Christian König
87e0a87dab
drm/amdgpu: remove amdgpu_bo_list_clone
...
Not used any more.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:49:12 -04:00
Christian König
3a185a33a2
drm/amdgpu: remove the context from amdgpu_job
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:48:27 -04:00
Christian König
69f7dd652c
drm/amdgpu: remove unused parameters to amd_sched_create
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:47:41 -04:00
Christian König
1fca766b24
drm/amdgpu: remove sched_lock
...
It isn't protecting anything.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:46:46 -04:00
Christian König
b034b572f2
drm/amdgpu: remove prepare_job callback
...
Not used any more.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:46:02 -04:00
Christian König
d54fdb94b2
drm/amdgpu: cleanup a scheduler function name
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:44:57 -04:00
Christian König
e688b72822
drm/amdgpu: reorder scheduler functions
...
Keep run queue, entity and scheduler handling together.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:44:23 -04:00
Christian König
f495659821
drm/amdgpu: fix scheduler thread creation error checking
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:43:46 -04:00
Christian König
aef4852eed
drm/amdgpu: fix entity wakeup race condition
...
That actually didn't worked at all.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:42:30 -04:00
Christian König
f85a6dd9eb
drm/amdgpu: cleanup entity picking
...
Cleanup function name, stop checking scheduler ready twice, but
check if kernel thread should stop instead.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:41:52 -04:00
Christian König
9788ec4032
drm/amdgpu: remove some more unused entity members v2
...
None of them are used any more.
v2: fix type in error message
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:40:55 -04:00
Christian König
eb98d1c54d
drm/amdgpu: fix user fences when scheduler is enabled
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-25 10:40:25 -04:00
Christian König
f91b3a6941
drm/amdgpu: fix fence wait in sync_fence, instead should be in sync_rings
...
Signed-off-by: Christian König <christian.koenig@amd.com >
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:39:39 -04:00
Christian König
c746ba2223
drm/amdgpu: rework scheduler submission handling.
...
Remove active_hw_rq and it's protecting queue_lock, they are unused.
User 32bit atomic for hw_rq_count, 64bits for counting to three is a bit
overkill.
Cleanup the function name and remove incorrect comments.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
2015-08-25 10:39:31 -04:00
Christian König
ce882e6dc2
drm/amdgpu: remove v_seq handling from the scheduler v2
...
Simply not used any more. Only keep 32bit atomic for fence sequence numbering.
v2: trivial rebase
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Alex Deucher <alexander.deucher@amd.com > (v1)
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com > (v1)
Reviewed-by: Chunming Zhou <david1.zhou@amd.com > (v1)
2015-08-25 10:39:16 -04:00
Chunming Zhou
4ce9891ee1
drm/amdgpu: improve sa_bo->fence by kernel fence
...
Signed-off-by: Chunming Zhou <david1.zhou@amd.com >
Reviewed-by: Christian K?nig <christian.koenig@amd.com >
2015-08-25 10:38:41 -04:00
Junwei Zhang
1aa4051b7f
drm/amdgpu: modify amdgpu_fence_wait_any() to amdgpu_fence_wait_multiple()
...
Rename the function and update the related code with this modified function.
Add the new parameter of bool wait_all.
If wait_all is true, it will return when all fences are signaled or timeout.
If wait_all is false, it will return when any fence is signaled or timeout.
Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com >
Reviewed-by: Monk Liu <monk.liu@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
2015-08-25 10:38:28 -04:00
Alex Deucher
52293c67f1
drm/amdgpu: fix IH ring allocation for bus addresses (v2)
...
Use pci_alloc_consistent rather than kzalloc since we
need 256 byte aligned memory for the ring buffer.
v2: fix copy paste typo in free function noticed
by Jammy.
bug:
https://bugs.freedesktop.org/show_bug.cgi?id=91749
Reviewed-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2015-08-25 10:09:30 -04:00
Alex Deucher
a887adadb7
drm/amdgpu: Don't link train DisplayPort on HPD until we get the dpcd
...
This is a port of:
DRM - radeon: Don't link train DisplayPort on HPD until we get the dpcd
to amdgpu.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Cc: stable@vger.kernel.org
2015-08-21 18:07:38 -04:00
Christian König
26a6980cf4
drm/amdgpu: fix CS error handling v2
...
Stop double freeing the the BO list by pulling the content
of amdgpu_cs_parser_prepare_job() into the IOCTL function again.
v2: better commit message
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com > (v1)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-20 17:06:10 -04:00
Christian König
b203dd9594
drm/amdgpu: fix zeroing all IB fields manually v2
...
The problem now is that we don't necessarily call amdgpu_ib_get()
in some error paths and so work with uninitialized data.
Better require that the memory is already zeroed.
v2: better commit message
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com > (v1)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
2015-08-20 17:05:34 -04:00
Christian König
bf7ebaeed4
drm/amdgpu: free the job immediately after dispatching it
...
Fixes a whole bunch of lockdep warnings.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-20 17:05:01 -04:00
Christian König
2b184d8dbc
drm/amdgpu: use a spinlock instead of a mutex for the rq
...
More appropriate and fixes some nasty lockdep warnings.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chunming Zhou <david1.zhou@amd.com >
2015-08-20 17:03:47 -04:00
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