Loading drivers/android/binder.c +7 −11 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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) Loading Loading @@ -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); Loading include/linux/sched/sysctl.h +1 −1 Original line number Diff line number Diff line Loading @@ -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, Loading include/trace/events/sched.h +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading kernel/sched/fair.c +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading kernel/sched/sched.h +2 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
drivers/android/binder.c +7 −11 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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) Loading Loading @@ -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); Loading
include/linux/sched/sysctl.h +1 −1 Original line number Diff line number Diff line Loading @@ -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, Loading
include/trace/events/sched.h +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
kernel/sched/fair.c +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
kernel/sched/sched.h +2 −1 Original line number Diff line number Diff line Loading @@ -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