Commit cadf97b1 authored by Chunming Zhou's avatar Chunming Zhou Committed by Alex Deucher

drm/amdgpu: clean up non-scheduler code path (v2)

Non-scheduler code is longer supported.

v2: agd: rebased on upstream
Signed-off-by: default avatarChunming Zhou <David1.Zhou@amd.com>
Reviewed-by: default avatarKen Wang  <Qingqing.Wang@amd.com>
Reviewed-by: default avatarMonk Liu <monk.liu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent be86c606
...@@ -82,7 +82,6 @@ extern int amdgpu_vm_size; ...@@ -82,7 +82,6 @@ extern int amdgpu_vm_size;
extern int amdgpu_vm_block_size; extern int amdgpu_vm_block_size;
extern int amdgpu_vm_fault_stop; extern int amdgpu_vm_fault_stop;
extern int amdgpu_vm_debug; extern int amdgpu_vm_debug;
extern int amdgpu_enable_scheduler;
extern int amdgpu_sched_jobs; extern int amdgpu_sched_jobs;
extern int amdgpu_sched_hw_submission; extern int amdgpu_sched_hw_submission;
extern int amdgpu_enable_semaphores; extern int amdgpu_enable_semaphores;
......
...@@ -813,7 +813,7 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) ...@@ -813,7 +813,7 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
if (r) if (r)
goto out; goto out;
if (amdgpu_enable_scheduler && parser.num_ibs) { if (parser.num_ibs) {
struct amdgpu_ring * ring = parser.ibs->ring; struct amdgpu_ring * ring = parser.ibs->ring;
struct amd_sched_fence *fence; struct amd_sched_fence *fence;
struct amdgpu_job *job; struct amdgpu_job *job;
...@@ -858,15 +858,6 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) ...@@ -858,15 +858,6 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
trace_amdgpu_cs_ioctl(job); trace_amdgpu_cs_ioctl(job);
amd_sched_entity_push_job(&job->base); amd_sched_entity_push_job(&job->base);
} else {
struct amdgpu_fence *fence;
r = amdgpu_ib_schedule(adev, parser.num_ibs, parser.ibs,
parser.filp);
fence = parser.ibs[parser.num_ibs - 1].fence;
parser.fence = fence_get(&fence->base);
cs->out.handle = parser.ibs[parser.num_ibs - 1].sequence;
} }
out: out:
......
...@@ -45,7 +45,6 @@ int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri, ...@@ -45,7 +45,6 @@ int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri,
ctx->rings[i].fences = (void *)ctx->fences + sizeof(struct fence *) * ctx->rings[i].fences = (void *)ctx->fences + sizeof(struct fence *) *
amdgpu_sched_jobs * i; amdgpu_sched_jobs * i;
} }
if (amdgpu_enable_scheduler) {
/* create context entity for each ring */ /* create context entity for each ring */
for (i = 0; i < adev->num_rings; i++) { for (i = 0; i < adev->num_rings; i++) {
struct amd_sched_rq *rq; struct amd_sched_rq *rq;
...@@ -68,7 +67,6 @@ int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri, ...@@ -68,7 +67,6 @@ int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri,
kfree(ctx->fences); kfree(ctx->fences);
return r; return r;
} }
}
return 0; return 0;
} }
...@@ -85,11 +83,9 @@ void amdgpu_ctx_fini(struct amdgpu_ctx *ctx) ...@@ -85,11 +83,9 @@ void amdgpu_ctx_fini(struct amdgpu_ctx *ctx)
fence_put(ctx->rings[i].fences[j]); fence_put(ctx->rings[i].fences[j]);
kfree(ctx->fences); kfree(ctx->fences);
if (amdgpu_enable_scheduler) {
for (i = 0; i < adev->num_rings; i++) for (i = 0; i < adev->num_rings; i++)
amd_sched_entity_fini(&adev->rings[i]->sched, amd_sched_entity_fini(&adev->rings[i]->sched,
&ctx->rings[i].entity); &ctx->rings[i].entity);
}
} }
static int amdgpu_ctx_alloc(struct amdgpu_device *adev, static int amdgpu_ctx_alloc(struct amdgpu_device *adev,
......
...@@ -78,7 +78,6 @@ int amdgpu_vm_block_size = -1; ...@@ -78,7 +78,6 @@ int amdgpu_vm_block_size = -1;
int amdgpu_vm_fault_stop = 0; int amdgpu_vm_fault_stop = 0;
int amdgpu_vm_debug = 0; int amdgpu_vm_debug = 0;
int amdgpu_exp_hw_support = 0; int amdgpu_exp_hw_support = 0;
int amdgpu_enable_scheduler = 1;
int amdgpu_sched_jobs = 32; int amdgpu_sched_jobs = 32;
int amdgpu_sched_hw_submission = 2; int amdgpu_sched_hw_submission = 2;
int amdgpu_powerplay = -1; int amdgpu_powerplay = -1;
...@@ -152,9 +151,6 @@ module_param_named(vm_debug, amdgpu_vm_debug, int, 0644); ...@@ -152,9 +151,6 @@ module_param_named(vm_debug, amdgpu_vm_debug, int, 0644);
MODULE_PARM_DESC(exp_hw_support, "experimental hw support (1 = enable, 0 = disable (default))"); MODULE_PARM_DESC(exp_hw_support, "experimental hw support (1 = enable, 0 = disable (default))");
module_param_named(exp_hw_support, amdgpu_exp_hw_support, int, 0444); module_param_named(exp_hw_support, amdgpu_exp_hw_support, int, 0444);
MODULE_PARM_DESC(enable_scheduler, "enable SW GPU scheduler (1 = enable (default), 0 = disable)");
module_param_named(enable_scheduler, amdgpu_enable_scheduler, int, 0444);
MODULE_PARM_DESC(sched_jobs, "the max number of jobs supported in the sw queue (default 32)"); MODULE_PARM_DESC(sched_jobs, "the max number of jobs supported in the sw queue (default 32)");
module_param_named(sched_jobs, amdgpu_sched_jobs, int, 0444); module_param_named(sched_jobs, amdgpu_sched_jobs, int, 0444);
......
...@@ -472,6 +472,7 @@ int amdgpu_fence_driver_start_ring(struct amdgpu_ring *ring, ...@@ -472,6 +472,7 @@ int amdgpu_fence_driver_start_ring(struct amdgpu_ring *ring,
int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring) int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring)
{ {
int i, r; int i, r;
long timeout;
ring->fence_drv.cpu_addr = NULL; ring->fence_drv.cpu_addr = NULL;
ring->fence_drv.gpu_addr = 0; ring->fence_drv.gpu_addr = 0;
...@@ -486,8 +487,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring) ...@@ -486,8 +487,7 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring)
init_waitqueue_head(&ring->fence_drv.fence_queue); init_waitqueue_head(&ring->fence_drv.fence_queue);
if (amdgpu_enable_scheduler) { timeout = msecs_to_jiffies(amdgpu_lockup_timeout);
long timeout = msecs_to_jiffies(amdgpu_lockup_timeout);
if (timeout == 0) { if (timeout == 0) {
/* /*
* FIXME: * FIXME:
...@@ -506,7 +506,6 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring) ...@@ -506,7 +506,6 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring)
ring->name); ring->name);
return r; return r;
} }
}
return 0; return 0;
} }
......
...@@ -199,10 +199,6 @@ int amdgpu_ib_schedule(struct amdgpu_device *adev, unsigned num_ibs, ...@@ -199,10 +199,6 @@ int amdgpu_ib_schedule(struct amdgpu_device *adev, unsigned num_ibs,
return r; return r;
} }
if (!amdgpu_enable_scheduler && ib->ctx)
ib->sequence = amdgpu_ctx_add_fence(ib->ctx, ring,
&ib->fence->base);
/* wrap the last IB with fence */ /* wrap the last IB with fence */
if (ib->user) { if (ib->user) {
uint64_t addr = amdgpu_bo_gpu_offset(ib->user->bo); uint64_t addr = amdgpu_bo_gpu_offset(ib->user->bo);
......
...@@ -76,8 +76,6 @@ int amdgpu_sched_ib_submit_kernel_helper(struct amdgpu_device *adev, ...@@ -76,8 +76,6 @@ int amdgpu_sched_ib_submit_kernel_helper(struct amdgpu_device *adev,
void *owner, void *owner,
struct fence **f) struct fence **f)
{ {
int r = 0;
if (amdgpu_enable_scheduler) {
struct amdgpu_job *job = struct amdgpu_job *job =
kzalloc(sizeof(struct amdgpu_job), GFP_KERNEL); kzalloc(sizeof(struct amdgpu_job), GFP_KERNEL);
if (!job) if (!job)
...@@ -97,12 +95,6 @@ int amdgpu_sched_ib_submit_kernel_helper(struct amdgpu_device *adev, ...@@ -97,12 +95,6 @@ int amdgpu_sched_ib_submit_kernel_helper(struct amdgpu_device *adev,
job->owner = owner; job->owner = owner;
job->free_job = free_job; job->free_job = free_job;
amd_sched_entity_push_job(&job->base); amd_sched_entity_push_job(&job->base);
} else {
r = amdgpu_ib_schedule(adev, num_ibs, ibs, owner);
if (r)
return r;
*f = fence_get(&ibs[num_ibs - 1].fence->base);
}
return 0; return 0;
} }
...@@ -1070,10 +1070,6 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring, ...@@ -1070,10 +1070,6 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring,
if (r) if (r)
goto error_free; goto error_free;
if (!amdgpu_enable_scheduler) {
amdgpu_ib_free(adev, ib);
kfree(ib);
}
return 0; return 0;
error_free: error_free:
amdgpu_ib_free(adev, ib); amdgpu_ib_free(adev, ib);
......
...@@ -895,11 +895,7 @@ static int amdgpu_uvd_send_msg(struct amdgpu_ring *ring, ...@@ -895,11 +895,7 @@ static int amdgpu_uvd_send_msg(struct amdgpu_ring *ring,
*fence = fence_get(f); *fence = fence_get(f);
amdgpu_bo_unref(&bo); amdgpu_bo_unref(&bo);
fence_put(f); fence_put(f);
if (amdgpu_enable_scheduler)
return 0;
amdgpu_ib_free(ring->adev, ib);
kfree(ib);
return 0; return 0;
err2: err2:
amdgpu_ib_free(ring->adev, ib); amdgpu_ib_free(ring->adev, ib);
......
...@@ -432,7 +432,6 @@ int amdgpu_vce_get_create_msg(struct amdgpu_ring *ring, uint32_t handle, ...@@ -432,7 +432,6 @@ int amdgpu_vce_get_create_msg(struct amdgpu_ring *ring, uint32_t handle,
if (fence) if (fence)
*fence = fence_get(f); *fence = fence_get(f);
fence_put(f); fence_put(f);
if (amdgpu_enable_scheduler)
return 0; return 0;
err: err:
amdgpu_ib_free(adev, ib); amdgpu_ib_free(adev, ib);
...@@ -499,7 +498,6 @@ int amdgpu_vce_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle, ...@@ -499,7 +498,6 @@ int amdgpu_vce_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle,
if (fence) if (fence)
*fence = fence_get(f); *fence = fence_get(f);
fence_put(f); fence_put(f);
if (amdgpu_enable_scheduler)
return 0; return 0;
err: err:
amdgpu_ib_free(adev, ib); amdgpu_ib_free(adev, ib);
......
...@@ -401,7 +401,6 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev, ...@@ -401,7 +401,6 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev,
if (!r) if (!r)
amdgpu_bo_fence(bo, fence, true); amdgpu_bo_fence(bo, fence, true);
fence_put(fence); fence_put(fence);
if (amdgpu_enable_scheduler)
return 0; return 0;
error_free: error_free:
...@@ -536,7 +535,7 @@ int amdgpu_vm_update_page_directory(struct amdgpu_device *adev, ...@@ -536,7 +535,7 @@ int amdgpu_vm_update_page_directory(struct amdgpu_device *adev,
fence_put(fence); fence_put(fence);
} }
if (!amdgpu_enable_scheduler || ib->length_dw == 0) { if (ib->length_dw == 0) {
amdgpu_ib_free(adev, ib); amdgpu_ib_free(adev, ib);
kfree(ib); kfree(ib);
} }
...@@ -819,10 +818,6 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev, ...@@ -819,10 +818,6 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
*fence = fence_get(f); *fence = fence_get(f);
} }
fence_put(f); fence_put(f);
if (!amdgpu_enable_scheduler) {
amdgpu_ib_free(adev, ib);
kfree(ib);
}
return 0; return 0;
error_free: error_free:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment