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 improvemnts. Change-Id: I9c8c1a9c00534700b63834384c3553145ae8c935 Signed-off-by: Stephen Dickey <dickey@codeaurora.org> Signed-off-by: Sai Harshini Nimmala <snimmala@codeaurora.org>
This commit is contained in:
parent
03504cab3c
commit
925dd42831
|
|
@ -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[];
|
||||
|
|
|
|||
|
|
@ -41,7 +41,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