diff options
author | Junwei Zhang <Jerry.Zhang@amd.com> | 2015-09-08 21:05:55 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-09-23 17:23:36 -0400 |
commit | 4c7eb91cae88fd2aa101750d6825b4176f85ffb2 (patch) | |
tree | 852e67d3ae0e4bad92b8405ea9bf46fae1ac0d47 | |
parent | bf60efd353f68e5dec1a177b5cbe4da07c819569 (diff) |
drm/amdgpu: refine the job naming for amdgpu_job and amdgpu_sched_job
Use consistent naming across functions.
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: David Zhou <david1.zhou@amd.com>
Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 36 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 64 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 4 |
8 files changed, 71 insertions, 69 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index e587e20074d3..58fe9fab8192 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
@@ -1275,7 +1275,7 @@ struct amdgpu_job { | |||
1275 | uint32_t num_ibs; | 1275 | uint32_t num_ibs; |
1276 | struct mutex job_lock; | 1276 | struct mutex job_lock; |
1277 | struct amdgpu_user_fence uf; | 1277 | struct amdgpu_user_fence uf; |
1278 | int (*free_job)(struct amdgpu_job *sched_job); | 1278 | int (*free_job)(struct amdgpu_job *job); |
1279 | }; | 1279 | }; |
1280 | 1280 | ||
1281 | static inline u32 amdgpu_get_ib_value(struct amdgpu_cs_parser *p, uint32_t ib_idx, int idx) | 1281 | static inline u32 amdgpu_get_ib_value(struct amdgpu_cs_parser *p, uint32_t ib_idx, int idx) |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index 4b92e3836684..4c1698861c42 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |||
@@ -778,15 +778,15 @@ static int amdgpu_cs_dependencies(struct amdgpu_device *adev, | |||
778 | return 0; | 778 | return 0; |
779 | } | 779 | } |
780 | 780 | ||
781 | static int amdgpu_cs_free_job(struct amdgpu_job *sched_job) | 781 | static int amdgpu_cs_free_job(struct amdgpu_job *job) |
782 | { | 782 | { |
783 | int i; | 783 | int i; |
784 | if (sched_job->ibs) | 784 | if (job->ibs) |
785 | for (i = 0; i < sched_job->num_ibs; i++) | 785 | for (i = 0; i < job->num_ibs; i++) |
786 | amdgpu_ib_free(sched_job->adev, &sched_job->ibs[i]); | 786 | amdgpu_ib_free(job->adev, &job->ibs[i]); |
787 | kfree(sched_job->ibs); | 787 | kfree(job->ibs); |
788 | if (sched_job->uf.bo) | 788 | if (job->uf.bo) |
789 | drm_gem_object_unreference_unlocked(&sched_job->uf.bo->gem_base); | 789 | drm_gem_object_unreference_unlocked(&job->uf.bo->gem_base); |
790 | return 0; | 790 | return 0; |
791 | } | 791 | } |
792 | 792 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c index 5724a81fbf5e..af1a3dabd190 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | |||
@@ -27,42 +27,42 @@ | |||
27 | #include <drm/drmP.h> | 27 | #include <drm/drmP.h> |
28 | #include "amdgpu.h" | 28 | #include "amdgpu.h" |
29 | 29 | ||
30 | static struct fence *amdgpu_sched_dependency(struct amd_sched_job *job) | 30 | static struct fence *amdgpu_sched_dependency(struct amd_sched_job *sched_job) |
31 | { | 31 | { |
32 | struct amdgpu_job *sched_job = (struct amdgpu_job *)job; | 32 | struct amdgpu_job *job = (struct amdgpu_job *)sched_job; |
33 | return amdgpu_sync_get_fence(&sched_job->ibs->sync); | 33 | return amdgpu_sync_get_fence(&job->ibs->sync); |
34 | } | 34 | } |
35 | 35 | ||
36 | static struct fence *amdgpu_sched_run_job(struct amd_sched_job *job) | 36 | static struct fence *amdgpu_sched_run_job(struct amd_sched_job *sched_job) |
37 | { | 37 | { |
38 | struct amdgpu_fence *fence = NULL; | 38 | struct amdgpu_fence *fence = NULL; |
39 | struct amdgpu_job *sched_job; | 39 | struct amdgpu_job *job; |
40 | int r; | 40 | int r; |
41 | 41 | ||
42 | if (!job) { | 42 | if (!sched_job) { |
43 | DRM_ERROR("job is null\n"); | 43 | DRM_ERROR("job is null\n"); |
44 | return NULL; | 44 | return NULL; |
45 | } | 45 | } |
46 | sched_job = (struct amdgpu_job *)job; | 46 | job = (struct amdgpu_job *)sched_job; |
47 | mutex_lock(&sched_job->job_lock); | 47 | mutex_lock(&job->job_lock); |
48 | r = amdgpu_ib_schedule(sched_job->adev, | 48 | r = amdgpu_ib_schedule(job->adev, |
49 | sched_job->num_ibs, | 49 | job->num_ibs, |
50 | sched_job->ibs, | 50 | job->ibs, |
51 | sched_job->base.owner); | 51 | job->base.owner); |
52 | if (r) { | 52 | if (r) { |
53 | DRM_ERROR("Error scheduling IBs (%d)\n", r); | 53 | DRM_ERROR("Error scheduling IBs (%d)\n", r); |
54 | goto err; | 54 | goto err; |
55 | } | 55 | } |
56 | 56 | ||
57 | fence = amdgpu_fence_ref(sched_job->ibs[sched_job->num_ibs - 1].fence); | 57 | fence = amdgpu_fence_ref(job->ibs[job->num_ibs - 1].fence); |
58 | 58 | ||
59 | err: | 59 | err: |
60 | if (sched_job->free_job) | 60 | if (job->free_job) |
61 | sched_job->free_job(sched_job); | 61 | job->free_job(job); |
62 | 62 | ||
63 | mutex_unlock(&sched_job->job_lock); | 63 | mutex_unlock(&job->job_lock); |
64 | fence_put(&sched_job->base.s_fence->base); | 64 | fence_put(&job->base.s_fence->base); |
65 | kfree(sched_job); | 65 | kfree(job); |
66 | return fence ? &fence->base : NULL; | 66 | return fence ? &fence->base : NULL; |
67 | } | 67 | } |
68 | 68 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c index 3cc86631d5d6..1a8e43b3039e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | |||
@@ -805,10 +805,10 @@ int amdgpu_uvd_ring_parse_cs(struct amdgpu_cs_parser *parser, uint32_t ib_idx) | |||
805 | } | 805 | } |
806 | 806 | ||
807 | static int amdgpu_uvd_free_job( | 807 | static int amdgpu_uvd_free_job( |
808 | struct amdgpu_job *sched_job) | 808 | struct amdgpu_job *job) |
809 | { | 809 | { |
810 | amdgpu_ib_free(sched_job->adev, sched_job->ibs); | 810 | amdgpu_ib_free(job->adev, job->ibs); |
811 | kfree(sched_job->ibs); | 811 | kfree(job->ibs); |
812 | return 0; | 812 | return 0; |
813 | } | 813 | } |
814 | 814 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c index c90caf810e4a..74f2038ac747 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | |||
@@ -342,10 +342,10 @@ void amdgpu_vce_free_handles(struct amdgpu_device *adev, struct drm_file *filp) | |||
342 | } | 342 | } |
343 | 343 | ||
344 | static int amdgpu_vce_free_job( | 344 | static int amdgpu_vce_free_job( |
345 | struct amdgpu_job *sched_job) | 345 | struct amdgpu_job *job) |
346 | { | 346 | { |
347 | amdgpu_ib_free(sched_job->adev, sched_job->ibs); | 347 | amdgpu_ib_free(job->adev, job->ibs); |
348 | kfree(sched_job->ibs); | 348 | kfree(job->ibs); |
349 | return 0; | 349 | return 0; |
350 | } | 350 | } |
351 | 351 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index d30fbecac26e..1e14531353e0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |||
@@ -316,12 +316,12 @@ static void amdgpu_vm_update_pages(struct amdgpu_device *adev, | |||
316 | } | 316 | } |
317 | } | 317 | } |
318 | 318 | ||
319 | int amdgpu_vm_free_job(struct amdgpu_job *sched_job) | 319 | int amdgpu_vm_free_job(struct amdgpu_job *job) |
320 | { | 320 | { |
321 | int i; | 321 | int i; |
322 | for (i = 0; i < sched_job->num_ibs; i++) | 322 | for (i = 0; i < job->num_ibs; i++) |
323 | amdgpu_ib_free(sched_job->adev, &sched_job->ibs[i]); | 323 | amdgpu_ib_free(job->adev, &job->ibs[i]); |
324 | kfree(sched_job->ibs); | 324 | kfree(job->ibs); |
325 | return 0; | 325 | return 0; |
326 | } | 326 | } |
327 | 327 | ||
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c index 191fd513d979..5c8dcf89297a 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | |||
@@ -68,29 +68,29 @@ static struct amd_sched_job * | |||
68 | amd_sched_rq_select_job(struct amd_sched_rq *rq) | 68 | amd_sched_rq_select_job(struct amd_sched_rq *rq) |
69 | { | 69 | { |
70 | struct amd_sched_entity *entity; | 70 | struct amd_sched_entity *entity; |
71 | struct amd_sched_job *job; | 71 | struct amd_sched_job *sched_job; |
72 | 72 | ||
73 | spin_lock(&rq->lock); | 73 | spin_lock(&rq->lock); |
74 | 74 | ||
75 | entity = rq->current_entity; | 75 | entity = rq->current_entity; |
76 | if (entity) { | 76 | if (entity) { |
77 | list_for_each_entry_continue(entity, &rq->entities, list) { | 77 | list_for_each_entry_continue(entity, &rq->entities, list) { |
78 | job = amd_sched_entity_pop_job(entity); | 78 | sched_job = amd_sched_entity_pop_job(entity); |
79 | if (job) { | 79 | if (sched_job) { |
80 | rq->current_entity = entity; | 80 | rq->current_entity = entity; |
81 | spin_unlock(&rq->lock); | 81 | spin_unlock(&rq->lock); |
82 | return job; | 82 | return sched_job; |
83 | } | 83 | } |
84 | } | 84 | } |
85 | } | 85 | } |
86 | 86 | ||
87 | list_for_each_entry(entity, &rq->entities, list) { | 87 | list_for_each_entry(entity, &rq->entities, list) { |
88 | 88 | ||
89 | job = amd_sched_entity_pop_job(entity); | 89 | sched_job = amd_sched_entity_pop_job(entity); |
90 | if (job) { | 90 | if (sched_job) { |
91 | rq->current_entity = entity; | 91 | rq->current_entity = entity; |
92 | spin_unlock(&rq->lock); | 92 | spin_unlock(&rq->lock); |
93 | return job; | 93 | return sched_job; |
94 | } | 94 | } |
95 | 95 | ||
96 | if (entity == rq->current_entity) | 96 | if (entity == rq->current_entity) |
@@ -208,15 +208,15 @@ static struct amd_sched_job * | |||
208 | amd_sched_entity_pop_job(struct amd_sched_entity *entity) | 208 | amd_sched_entity_pop_job(struct amd_sched_entity *entity) |
209 | { | 209 | { |
210 | struct amd_gpu_scheduler *sched = entity->scheduler; | 210 | struct amd_gpu_scheduler *sched = entity->scheduler; |
211 | struct amd_sched_job *job; | 211 | struct amd_sched_job *sched_job; |
212 | 212 | ||
213 | if (ACCESS_ONCE(entity->dependency)) | 213 | if (ACCESS_ONCE(entity->dependency)) |
214 | return NULL; | 214 | return NULL; |
215 | 215 | ||
216 | if (!kfifo_out_peek(&entity->job_queue, &job, sizeof(job))) | 216 | if (!kfifo_out_peek(&entity->job_queue, &sched_job, sizeof(sched_job))) |
217 | return NULL; | 217 | return NULL; |
218 | 218 | ||
219 | while ((entity->dependency = sched->ops->dependency(job))) { | 219 | while ((entity->dependency = sched->ops->dependency(sched_job))) { |
220 | 220 | ||
221 | if (fence_add_callback(entity->dependency, &entity->cb, | 221 | if (fence_add_callback(entity->dependency, &entity->cb, |
222 | amd_sched_entity_wakeup)) | 222 | amd_sched_entity_wakeup)) |
@@ -225,32 +225,33 @@ amd_sched_entity_pop_job(struct amd_sched_entity *entity) | |||
225 | return NULL; | 225 | return NULL; |
226 | } | 226 | } |
227 | 227 | ||
228 | return job; | 228 | return sched_job; |
229 | } | 229 | } |
230 | 230 | ||
231 | /** | 231 | /** |
232 | * Helper to submit a job to the job queue | 232 | * Helper to submit a job to the job queue |
233 | * | 233 | * |
234 | * @job The pointer to job required to submit | 234 | * @sched_job The pointer to job required to submit |
235 | * | 235 | * |
236 | * Returns true if we could submit the job. | 236 | * Returns true if we could submit the job. |
237 | */ | 237 | */ |
238 | static bool amd_sched_entity_in(struct amd_sched_job *job) | 238 | static bool amd_sched_entity_in(struct amd_sched_job *sched_job) |
239 | { | 239 | { |
240 | struct amd_sched_entity *entity = job->s_entity; | 240 | struct amd_sched_entity *entity = sched_job->s_entity; |
241 | bool added, first = false; | 241 | bool added, first = false; |
242 | 242 | ||
243 | spin_lock(&entity->queue_lock); | 243 | spin_lock(&entity->queue_lock); |
244 | added = kfifo_in(&entity->job_queue, &job, sizeof(job)) == sizeof(job); | 244 | added = kfifo_in(&entity->job_queue, &sched_job, |
245 | sizeof(sched_job)) == sizeof(sched_job); | ||
245 | 246 | ||
246 | if (added && kfifo_len(&entity->job_queue) == sizeof(job)) | 247 | if (added && kfifo_len(&entity->job_queue) == sizeof(sched_job)) |
247 | first = true; | 248 | first = true; |
248 | 249 | ||
249 | spin_unlock(&entity->queue_lock); | 250 | spin_unlock(&entity->queue_lock); |
250 | 251 | ||
251 | /* first job wakes up scheduler */ | 252 | /* first job wakes up scheduler */ |
252 | if (first) | 253 | if (first) |
253 | amd_sched_wakeup(job->sched); | 254 | amd_sched_wakeup(sched_job->sched); |
254 | 255 | ||
255 | return added; | 256 | return added; |
256 | } | 257 | } |
@@ -258,7 +259,7 @@ static bool amd_sched_entity_in(struct amd_sched_job *job) | |||
258 | /** | 259 | /** |
259 | * Submit a job to the job queue | 260 | * Submit a job to the job queue |
260 | * | 261 | * |
261 | * @job The pointer to job required to submit | 262 | * @sched_job The pointer to job required to submit |
262 | * | 263 | * |
263 | * Returns 0 for success, negative error code otherwise. | 264 | * Returns 0 for success, negative error code otherwise. |
264 | */ | 265 | */ |
@@ -304,17 +305,17 @@ static void amd_sched_wakeup(struct amd_gpu_scheduler *sched) | |||
304 | static struct amd_sched_job * | 305 | static struct amd_sched_job * |
305 | amd_sched_select_job(struct amd_gpu_scheduler *sched) | 306 | amd_sched_select_job(struct amd_gpu_scheduler *sched) |
306 | { | 307 | { |
307 | struct amd_sched_job *job; | 308 | struct amd_sched_job *sched_job; |
308 | 309 | ||
309 | if (!amd_sched_ready(sched)) | 310 | if (!amd_sched_ready(sched)) |
310 | return NULL; | 311 | return NULL; |
311 | 312 | ||
312 | /* Kernel run queue has higher priority than normal run queue*/ | 313 | /* Kernel run queue has higher priority than normal run queue*/ |
313 | job = amd_sched_rq_select_job(&sched->kernel_rq); | 314 | sched_job = amd_sched_rq_select_job(&sched->kernel_rq); |
314 | if (job == NULL) | 315 | if (sched_job == NULL) |
315 | job = amd_sched_rq_select_job(&sched->sched_rq); | 316 | sched_job = amd_sched_rq_select_job(&sched->sched_rq); |
316 | 317 | ||
317 | return job; | 318 | return sched_job; |
318 | } | 319 | } |
319 | 320 | ||
320 | static void amd_sched_process_job(struct fence *f, struct fence_cb *cb) | 321 | static void amd_sched_process_job(struct fence *f, struct fence_cb *cb) |
@@ -340,20 +341,20 @@ static int amd_sched_main(void *param) | |||
340 | while (!kthread_should_stop()) { | 341 | while (!kthread_should_stop()) { |
341 | struct amd_sched_entity *entity; | 342 | struct amd_sched_entity *entity; |
342 | struct amd_sched_fence *s_fence; | 343 | struct amd_sched_fence *s_fence; |
343 | struct amd_sched_job *job; | 344 | struct amd_sched_job *sched_job; |
344 | struct fence *fence; | 345 | struct fence *fence; |
345 | 346 | ||
346 | wait_event_interruptible(sched->wake_up_worker, | 347 | wait_event_interruptible(sched->wake_up_worker, |
347 | kthread_should_stop() || | 348 | kthread_should_stop() || |
348 | (job = amd_sched_select_job(sched))); | 349 | (sched_job = amd_sched_select_job(sched))); |
349 | 350 | ||
350 | if (!job) | 351 | if (!sched_job) |
351 | continue; | 352 | continue; |
352 | 353 | ||
353 | entity = job->s_entity; | 354 | entity = sched_job->s_entity; |
354 | s_fence = job->s_fence; | 355 | s_fence = sched_job->s_fence; |
355 | atomic_inc(&sched->hw_rq_count); | 356 | atomic_inc(&sched->hw_rq_count); |
356 | fence = sched->ops->run_job(job); | 357 | fence = sched->ops->run_job(sched_job); |
357 | if (fence) { | 358 | if (fence) { |
358 | r = fence_add_callback(fence, &s_fence->cb, | 359 | r = fence_add_callback(fence, &s_fence->cb, |
359 | amd_sched_process_job); | 360 | amd_sched_process_job); |
@@ -367,8 +368,9 @@ static int amd_sched_main(void *param) | |||
367 | amd_sched_process_job(NULL, &s_fence->cb); | 368 | amd_sched_process_job(NULL, &s_fence->cb); |
368 | } | 369 | } |
369 | 370 | ||
370 | count = kfifo_out(&entity->job_queue, &job, sizeof(job)); | 371 | count = kfifo_out(&entity->job_queue, &sched_job, |
371 | WARN_ON(count != sizeof(job)); | 372 | sizeof(sched_job)); |
373 | WARN_ON(count != sizeof(sched_job)); | ||
372 | wake_up(&sched->job_scheduled); | 374 | wake_up(&sched->job_scheduled); |
373 | } | 375 | } |
374 | return 0; | 376 | return 0; |
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h index ac56d9211f7c..f33df6c70ca0 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | |||
@@ -91,8 +91,8 @@ static inline struct amd_sched_fence *to_amd_sched_fence(struct fence *f) | |||
91 | * these functions should be implemented in driver side | 91 | * these functions should be implemented in driver side |
92 | */ | 92 | */ |
93 | struct amd_sched_backend_ops { | 93 | struct amd_sched_backend_ops { |
94 | struct fence *(*dependency)(struct amd_sched_job *job); | 94 | struct fence *(*dependency)(struct amd_sched_job *sched_job); |
95 | struct fence *(*run_job)(struct amd_sched_job *job); | 95 | struct fence *(*run_job)(struct amd_sched_job *sched_job); |
96 | }; | 96 | }; |
97 | 97 | ||
98 | /** | 98 | /** |