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

Commit 69232733 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "binder: update low_latency selection for binder transactions"

parents c788d28e 9d5fa2c9
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);
+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ extern unsigned int sysctl_sched_ravg_window_nr_ticks;
extern unsigned int sysctl_sched_dynamic_ravg_window_enable;
extern unsigned int sysctl_sched_prefer_spread;
extern unsigned int sysctl_walt_rtg_cfs_boost_prio;
extern unsigned int sysctl_walt_low_latency_task_boost;
extern unsigned int sysctl_walt_low_latency_task_threshold;

extern int
walt_proc_group_thresholds_handler(struct ctl_table *table, int write,
+1 −1
Original line number Diff line number Diff line
@@ -1267,7 +1267,7 @@ TRACE_EVENT(sched_task_util,
		__entry->start_cpu		= start_cpu;
#ifdef CONFIG_SCHED_WALT
		__entry->unfilter		= p->unfilter;
		__entry->low_latency		= p->low_latency;
		__entry->low_latency		= walt_low_latency_task(p);
#else
		__entry->unfilter		= 0;
		__entry->low_latency		= 0;
+1 −1
Original line number Diff line number Diff line
@@ -177,7 +177,7 @@ unsigned int sysctl_sched_min_task_util_for_boost = 51;
unsigned int sysctl_sched_min_task_util_for_colocation = 35;
__read_mostly unsigned int sysctl_sched_prefer_spread;
unsigned int sysctl_walt_rtg_cfs_boost_prio = 99; /* disabled by default */
unsigned int sysctl_walt_low_latency_task_boost; /* disabled by default */
unsigned int sysctl_walt_low_latency_task_threshold; /* disabled by default */
#endif
unsigned int sched_small_task_threshold = 102;
__read_mostly unsigned int sysctl_sched_force_lb_enable = 1;
+2 −1
Original line number Diff line number Diff line
@@ -2911,7 +2911,8 @@ static inline bool task_rtg_high_prio(struct task_struct *p)

static inline bool walt_low_latency_task(struct task_struct *p)
{
	return sysctl_walt_low_latency_task_boost && p->low_latency;
	return p->low_latency &&
		(task_util(p) < sysctl_walt_low_latency_task_threshold);
}

/* Is frequency of two cpus synchronized with each other? */
Loading