Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d5fa2c9 authored by Kishore Sri venkata Ganesh Bolisetty's avatar Kishore Sri venkata Ganesh Bolisetty Committed by Lingutla Chandrasekhar
Browse files

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: default avatarKishore Sri venkata Ganesh Bolisetty <bsrivenk@codeaurora.org>
[clingutla@codeaurora.org: Resolved trivial merge conflicts]
Signed-off-by: default avatarLingutla Chandrasekhar <clingutla@codeaurora.org>
parent 6dc3ebb3
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -1023,10 +1023,10 @@ 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->low_latency = true;
			}
#endif
			if (sync)
				wake_up_interruptible_sync(&thread->wait);
@@ -1088,8 +1088,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->low_latency = true;
#endif
		if (sync)
@@ -3530,12 +3531,7 @@ 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->low_latency = true;
		}
#endif

		wake_up_interruptible_sync(&target_thread->wait);
		binder_restore_priority(current, in_reply_to->saved_priority);
		binder_free_transaction(in_reply_to);