drm/amdgpu: grab VMID before submitting job v5

This allows the scheduler to handle the dependencies on ID contention as well.

v2: grab id only once
v3: use a separate lock for the VMIDs
v4: cleanup after semaphore removal
v5: minor coding style change

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Christian König
2015-11-03 20:58:50 +01:00
committed by Alex Deucher
parent 165e4e07c2
commit 8d0a7cea82
4 changed files with 35 additions and 13 deletions

View File

@@ -777,6 +777,7 @@ struct amdgpu_ib {
struct amdgpu_ring *ring;
struct amdgpu_fence *fence;
struct amdgpu_user_fence *user;
bool grabbed_vmid;
struct amdgpu_vm *vm;
struct amdgpu_ctx *ctx;
struct amdgpu_sync sync;
@@ -925,6 +926,9 @@ struct amdgpu_vm {
};
struct amdgpu_vm_manager {
/* protecting IDs */
struct mutex lock;
struct {
struct fence *active;
atomic_long_t owner;