Merge "sched/walt: Improve the scheduler"
This commit is contained in:
commit
315a58f72b
@ -61,6 +61,7 @@ unsigned int sysctl_sched_many_wakeup_threshold = WALT_MANY_WAKEUP_DEFAULT;
|
||||
const int sched_user_hint_max = 1000;
|
||||
unsigned int sysctl_walt_rtg_cfs_boost_prio = 99; /* disabled by default */
|
||||
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;
|
||||
|
||||
@ -713,6 +714,15 @@ struct ctl_table walt_table[] = {
|
||||
.extra1 = SYSCTL_ZERO,
|
||||
.extra2 = SYSCTL_ONE,
|
||||
},
|
||||
{
|
||||
.procname = "sched_bug_on_rt_throttle",
|
||||
.data = &sysctl_sched_bug_on_rt_throttle,
|
||||
.maxlen = sizeof(unsigned int),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec_minmax,
|
||||
.extra1 = SYSCTL_ZERO,
|
||||
.extra2 = SYSCTL_ONE,
|
||||
},
|
||||
{
|
||||
.procname = "sched_suppress_region2",
|
||||
.data = &sysctl_sched_suppress_region2,
|
||||
|
@ -4130,6 +4130,23 @@ static void android_rvh_force_compatible_post(void *unused, void *unused2)
|
||||
cpu_maps_update_done();
|
||||
}
|
||||
|
||||
static void dump_throttled_rt_tasks(void *unused, int cpu, u64 clock,
|
||||
ktime_t rt_period, u64 rt_runtime, s64 rt_period_timer_expires)
|
||||
{
|
||||
printk_deferred("sched: RT throttling activated for cpu %d\n", cpu);
|
||||
printk_deferred("rt_period_timer: expires=%lld now=%llu rt_time=%llu runtime=%llu period=%llu\n",
|
||||
rt_period_timer_expires, ktime_get_ns(),
|
||||
task_rq(current)->rt.rt_time, rt_runtime, rt_period);
|
||||
printk_deferred("potential CPU hogs:\n");
|
||||
#ifdef CONFIG_SCHED_INFO
|
||||
if (sched_info_on())
|
||||
printk_deferred("current %s (%d) is running for %llu nsec\n",
|
||||
current->comm, current->pid,
|
||||
clock - current->sched_info.last_arrival);
|
||||
#endif
|
||||
BUG_ON(sysctl_sched_bug_on_rt_throttle);
|
||||
}
|
||||
|
||||
static void register_walt_hooks(void)
|
||||
{
|
||||
register_trace_android_rvh_wake_up_new_task(android_rvh_wake_up_new_task, NULL);
|
||||
@ -4161,6 +4178,7 @@ static void register_walt_hooks(void)
|
||||
register_trace_cpu_frequency_limits(walt_cpu_frequency_limits, NULL);
|
||||
register_trace_android_rvh_force_compatible_pre(android_rvh_force_compatible_pre, NULL);
|
||||
register_trace_android_rvh_force_compatible_post(android_rvh_force_compatible_post, NULL);
|
||||
register_trace_android_vh_dump_throttled_rt_tasks(dump_throttled_rt_tasks, NULL);
|
||||
}
|
||||
|
||||
atomic64_t walt_irq_work_lastq_ws;
|
||||
|
@ -286,6 +286,7 @@ extern unsigned int sysctl_sched_task_unfilter_period;
|
||||
extern unsigned int __read_mostly sysctl_sched_asym_cap_sibling_freq_match_pct;
|
||||
extern unsigned int sysctl_walt_low_latency_task_threshold; /* disabled by default */
|
||||
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 struct ctl_table walt_table[];
|
||||
extern struct ctl_table walt_base_table[];
|
||||
|
@ -11,23 +11,6 @@
|
||||
#include "walt.h"
|
||||
#include "walt_debug.h"
|
||||
|
||||
static void dump_throttled_rt_tasks(void *unused, int cpu, u64 clock,
|
||||
ktime_t rt_period, u64 rt_runtime, s64 rt_period_timer_expires)
|
||||
{
|
||||
printk_deferred("sched: RT throttling activated for cpu %d\n", cpu);
|
||||
printk_deferred("rt_period_timer: expires=%lld now=%llu rt_time=%llu runtime=%llu period=%llu\n",
|
||||
rt_period_timer_expires, ktime_get_ns(),
|
||||
task_rq(current)->rt.rt_time, rt_runtime, rt_period);
|
||||
printk_deferred("potential CPU hogs:\n");
|
||||
#ifdef CONFIG_SCHED_INFO
|
||||
if (sched_info_on())
|
||||
printk_deferred("current %s (%d) is running for %llu nsec\n",
|
||||
current->comm, current->pid,
|
||||
clock - current->sched_info.last_arrival);
|
||||
#endif
|
||||
BUG();
|
||||
}
|
||||
|
||||
static void android_rvh_schedule_bug(void *unused, struct task_struct *unused2)
|
||||
{
|
||||
BUG();
|
||||
@ -41,7 +24,6 @@ static int __init walt_debug_init(void)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
register_trace_android_vh_dump_throttled_rt_tasks(dump_throttled_rt_tasks, NULL);
|
||||
register_trace_android_rvh_schedule_bug(android_rvh_schedule_bug, NULL);
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user