From e025cec440c0b8aaa8a4ab718755cbae0f13d3f0 Mon Sep 17 00:00:00 2001 From: Kishore Sri venkata Ganesh Bolisetty Date: Wed, 19 Aug 2020 11:58:25 -0700 Subject: [PATCH] binder: update low_latency selection for binder transactions The change limits the low_latency flag selection to binder transactions of the foreground high priority tasks. Change-Id: Id191e63ba2ccf5537cb45711c20bc22831129a18 Signed-off-by: Kishore Sri venkata Ganesh Bolisetty --- drivers/android/binder.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 906b45d1e69f..a1985d161856 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -983,8 +983,9 @@ static void binder_wakeup_poll_threads_ilocked(struct binder_proc *proc, if (thread->looper & BINDER_LOOPER_STATE_POLL && binder_available_for_proc_work_ilocked(thread)) { #ifdef CONFIG_SCHED_WALT - if (sync && thread->task && thread->task->signal && - (thread->task->signal->oom_score_adj <= 0)) + if (thread->task && current->signal && + (current->signal->oom_score_adj == 0) && + (current->prio < DEFAULT_PRIO)) thread->task->wts.low_latency = true; #endif if (sync) @@ -1047,8 +1048,9 @@ static void binder_wakeup_thread_ilocked(struct binder_proc *proc, if (thread) { #ifdef CONFIG_SCHED_WALT - if (sync && thread->task && thread->task->signal && - (thread->task->signal->oom_score_adj <= 0)) + if (thread->task && current->signal && + (current->signal->oom_score_adj == 0) && + (current->prio < DEFAULT_PRIO)) thread->task->wts.low_latency = true; #endif if (sync) @@ -3613,12 +3615,6 @@ static void binder_transaction(struct binder_proc *proc, binder_pop_transaction_ilocked(target_thread, in_reply_to); binder_enqueue_thread_work_ilocked(target_thread, &t->work); binder_inner_proc_unlock(target_proc); -#ifdef CONFIG_SCHED_WALT - if (target_thread->task && target_thread->task->signal && - (target_thread->task->signal->oom_score_adj <= 0)) { - target_thread->task->wts.low_latency = true; - } -#endif wake_up_interruptible_sync(&target_thread->wait); trace_android_vh_binder_restore_priority(in_reply_to, current); binder_restore_priority(current, in_reply_to->saved_priority);