diff options
author | Devika Krishnadas <kdevika@google.com> | 2022-05-06 20:45:05 +0000 |
---|---|---|
committer | Devika Krishnadas <kdevika@google.com> | 2022-05-06 22:36:35 +0000 |
commit | 5eb4e28d03ffb5e035bf7d39f24d2d0e33daa07f (patch) | |
tree | c082ab371d30431f21b6c544aef1b76c2236e562 /mali_kbase/mali_kbase_softjobs.c | |
parent | 53773b3ec576097435a5a2e3ae81ab601549caff (diff) | |
download | gpu-5eb4e28d03ffb5e035bf7d39f24d2d0e33daa07f.tar.gz |
mali_kbase: use RT_MUTEX for some job submission and context locksandroid-t-beta-4_r0.6android-t-beta-4_r0.5android-t-beta-4_r0.4android-t-beta-3_r0.4android-t-beta-3.3_r0.4android-t-beta-3.2_r0.4android-13.0.0_r0.5android-13.0.0_r0.44android-13.0.0_r0.43android-13.0.0_r0.4android-13.0.0_r0.20android-13.0.0_r0.19android-13.0.0_r0.15android-13.0.0_r0.14android-gs-raviole-5.10-t-beta-4android-gs-raviole-5.10-t-beta-3android-gs-raviole-5.10-android13android-gs-bluejay-5.10-t-beta-4android-gs-bluejay-5.10-android13
Bug: 230692528
Test: smoke test
Signed-off-by: Devika Krishnadas <kdevika@google.com>
Change-Id: I7d5da6c0a55ccfc6e789ecb74f0af71aac9d5be3
Diffstat (limited to 'mali_kbase/mali_kbase_softjobs.c')
-rw-r--r-- | mali_kbase/mali_kbase_softjobs.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/mali_kbase/mali_kbase_softjobs.c b/mali_kbase/mali_kbase_softjobs.c index 1f8f7d8..611a3b6 100644 --- a/mali_kbase/mali_kbase_softjobs.c +++ b/mali_kbase/mali_kbase_softjobs.c @@ -212,12 +212,12 @@ void kbase_soft_event_wait_callback(struct kbase_jd_atom *katom) { struct kbase_context *kctx = katom->kctx; - mutex_lock(&kctx->jctx.lock); + rt_mutex_lock(&kctx->jctx.lock); kbasep_remove_waiting_soft_job(katom); kbase_finish_soft_job(katom); if (jd_done_nolock(katom, true)) kbase_js_sched_all(kctx->kbdev); - mutex_unlock(&kctx->jctx.lock); + rt_mutex_unlock(&kctx->jctx.lock); } #endif @@ -228,9 +228,9 @@ static void kbasep_soft_event_complete_job(struct kthread_work *work) struct kbase_context *kctx = katom->kctx; int resched; - mutex_lock(&kctx->jctx.lock); + rt_mutex_lock(&kctx->jctx.lock); resched = jd_done_nolock(katom, true); - mutex_unlock(&kctx->jctx.lock); + rt_mutex_unlock(&kctx->jctx.lock); if (resched) kbase_js_sched_all(kctx->kbdev); @@ -359,9 +359,9 @@ static void kbase_fence_debug_wait_timeout_worker(struct kthread_work *work) struct kbase_jd_atom *katom = w->katom; struct kbase_context *kctx = katom->kctx; - mutex_lock(&kctx->jctx.lock); + rt_mutex_lock(&kctx->jctx.lock); kbase_fence_debug_wait_timeout(katom); - mutex_unlock(&kctx->jctx.lock); + rt_mutex_unlock(&kctx->jctx.lock); kfree(w); } @@ -481,7 +481,7 @@ int kbase_soft_event_update(struct kbase_context *kctx, { int err = 0; - mutex_lock(&kctx->jctx.lock); + rt_mutex_lock(&kctx->jctx.lock); if (kbasep_write_soft_event_status(kctx, event, new_status)) { err = -ENOENT; @@ -492,7 +492,7 @@ int kbase_soft_event_update(struct kbase_context *kctx, kbasep_complete_triggered_soft_events(kctx, event); out: - mutex_unlock(&kctx->jctx.lock); + rt_mutex_unlock(&kctx->jctx.lock); return err; } @@ -1355,10 +1355,10 @@ static void kbasep_jit_finish_worker(struct kthread_work *work) struct kbase_context *kctx = katom->kctx; int resched; - mutex_lock(&kctx->jctx.lock); + rt_mutex_lock(&kctx->jctx.lock); kbase_finish_soft_job(katom); resched = jd_done_nolock(katom, true); - mutex_unlock(&kctx->jctx.lock); + rt_mutex_unlock(&kctx->jctx.lock); if (resched) kbase_js_sched_all(kctx->kbdev); @@ -1788,7 +1788,7 @@ void kbase_resume_suspended_soft_jobs(struct kbase_device *kbdev) &local_suspended_soft_jobs, dep_item[1]) { struct kbase_context *kctx = katom_iter->kctx; - mutex_lock(&kctx->jctx.lock); + rt_mutex_lock(&kctx->jctx.lock); /* Remove from the global list */ list_del(&katom_iter->dep_item[1]); @@ -1802,7 +1802,7 @@ void kbase_resume_suspended_soft_jobs(struct kbase_device *kbdev) atomic_dec(&kbdev->pm.gpu_users_waiting); #endif /* CONFIG_MALI_ARBITER_SUPPORT */ } - mutex_unlock(&kctx->jctx.lock); + rt_mutex_unlock(&kctx->jctx.lock); } if (resched) |