Merge "binder: update low_latency selection for binder transactions"

This commit is contained in:
qctecmdr 2020-09-13 16:08:31 -07:00 • committed by Gerrit - the friendly Code Review server
commit 4fab22c7c1

View file

@ -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);