mirror of
https://github.com/torvalds/linux.git
synced 2026-07-31 11:37:06 +02:00
sched/walt: Improve the scheduler
This change is for general scheduler improvement. Change-Id: I7e2f06b0f93d6c3c2cc439f895083f4b7cb96212 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
This commit is contained in:
parent
60e7fe8dba
commit
4a2c606e12
|
|
@ -64,6 +64,7 @@ unsigned int sysctl_sched_sync_hint_enable = 1;
|
|||
unsigned int sysctl_sched_bug_on_rt_throttle;
|
||||
unsigned int sysctl_panic_on_walt_bug;
|
||||
unsigned int sysctl_sched_suppress_region2;
|
||||
unsigned int sysctl_sched_skip_sp_newly_idle_lb;
|
||||
|
||||
/* range is [1 .. INT_MAX] */
|
||||
static int sysctl_task_read_pid = 1;
|
||||
|
|
@ -732,6 +733,15 @@ struct ctl_table walt_table[] = {
|
|||
.extra1 = SYSCTL_ZERO,
|
||||
.extra2 = SYSCTL_ONE,
|
||||
},
|
||||
{
|
||||
.procname = "sched_skip_sp_newly_idle_lb",
|
||||
.data = &sysctl_sched_skip_sp_newly_idle_lb,
|
||||
.maxlen = sizeof(unsigned int),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec_minmax,
|
||||
.extra1 = SYSCTL_ZERO,
|
||||
.extra2 = SYSCTL_ONE,
|
||||
},
|
||||
{
|
||||
.procname = "panic_on_walt_bug",
|
||||
.data = &sysctl_panic_on_walt_bug,
|
||||
|
|
|
|||
|
|
@ -288,6 +288,7 @@ extern unsigned int sysctl_walt_low_latency_task_threshold; /* disabled by defau
|
|||
extern unsigned int sysctl_sched_sync_hint_enable;
|
||||
extern unsigned int sysctl_sched_bug_on_rt_throttle;
|
||||
extern unsigned int sysctl_sched_suppress_region2;
|
||||
extern unsigned int sysctl_sched_skip_sp_newly_idle_lb;
|
||||
extern struct ctl_table walt_table[];
|
||||
extern struct ctl_table walt_base_table[];
|
||||
extern void walt_tunables(void);
|
||||
|
|
|
|||
|
|
@ -690,6 +690,13 @@ static void walt_newidle_balance(void *unused, struct rq *this_rq,
|
|||
busy_cpu = walt_lb_find_busiest_cpu(this_cpu,
|
||||
&cpu_array[order_index][cluster]);
|
||||
|
||||
if (sysctl_sched_skip_sp_newly_idle_lb) {
|
||||
if (busy_cpu == -1 &&
|
||||
((order_index == 0 && cluster > 0) ||
|
||||
(order_index == 2 && cluster > 0 && !help_min_cap)))
|
||||
break;
|
||||
}
|
||||
|
||||
/* we got the busy/src cpu here. */
|
||||
if (busy_cpu != -1 || this_rq->nr_running > 0)
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user