Loading include/linux/sched/sysctl.h +10 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ extern unsigned int sysctl_sched_cpu_high_irqload; extern unsigned int sysctl_sched_use_walt_cpu_util; extern unsigned int sysctl_sched_use_walt_task_util; extern unsigned int sysctl_sched_boost; extern unsigned int sysctl_sched_group_upmigrate_pct; extern unsigned int sysctl_sched_group_downmigrate_pct; #endif #ifdef CONFIG_SCHED_HMP Loading @@ -53,8 +55,6 @@ extern unsigned int sysctl_sched_spill_nr_run; extern unsigned int sysctl_sched_spill_load_pct; extern unsigned int sysctl_sched_upmigrate_pct; extern unsigned int sysctl_sched_downmigrate_pct; extern unsigned int sysctl_sched_group_upmigrate_pct; extern unsigned int sysctl_sched_group_downmigrate_pct; extern unsigned int sysctl_early_detection_duration; extern unsigned int sysctl_sched_small_wakee_task_load_pct; extern unsigned int sysctl_sched_big_waker_task_load_pct; Loading @@ -67,6 +67,14 @@ extern unsigned int sysctl_sched_freq_aggregate_threshold_pct; extern unsigned int sysctl_sched_prefer_sync_wakee_to_waker; extern unsigned int sysctl_sched_short_burst; extern unsigned int sysctl_sched_short_sleep; #elif defined(CONFIG_SCHED_WALT) extern int walt_proc_update_handler(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos); #endif /* CONFIG_SCHED_HMP */ enum sched_tunable_scaling { Loading kernel/sched/walt.c +30 −0 Original line number Diff line number Diff line Loading @@ -3047,3 +3047,33 @@ void walt_irq_work(struct irq_work *irq_work) core_ctl_check(this_rq()->window_start); } #ifndef CONFIG_SCHED_HMP int walt_proc_update_handler(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos) { int ret; unsigned int *data = (unsigned int *)table->data; static DEFINE_MUTEX(mutex); mutex_lock(&mutex); ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); if (ret || !write) { mutex_unlock(&mutex); return ret; } if (data == &sysctl_sched_group_upmigrate_pct) sched_group_upmigrate = pct_to_real(sysctl_sched_group_upmigrate_pct); else if (data == &sysctl_sched_group_downmigrate_pct) sched_group_downmigrate = pct_to_real(sysctl_sched_group_downmigrate_pct); else ret = -EINVAL; mutex_unlock(&mutex); return ret; } #endif kernel/sysctl.c +25 −16 Original line number Diff line number Diff line Loading @@ -300,6 +300,31 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = proc_dointvec, }, { .procname = "sched_group_upmigrate", .data = &sysctl_sched_group_upmigrate_pct, .maxlen = sizeof(unsigned int), .mode = 0644, #ifdef CONFIG_SCHED_HMP .proc_handler = sched_hmp_proc_update_handler, #else .proc_handler = walt_proc_update_handler, #endif .extra1 = &sysctl_sched_group_downmigrate_pct, }, { .procname = "sched_group_downmigrate", .data = &sysctl_sched_group_downmigrate_pct, .maxlen = sizeof(unsigned int), .mode = 0644, #ifdef CONFIG_SCHED_HMP .proc_handler = sched_hmp_proc_update_handler, #else .proc_handler = walt_proc_update_handler, #endif .extra1 = &zero, .extra2 = &sysctl_sched_group_upmigrate_pct, }, #endif #ifdef CONFIG_SCHED_HMP { Loading Loading @@ -376,22 +401,6 @@ static struct ctl_table kern_table[] = { .extra1 = &zero, .extra2 = &one_hundred, }, { .procname = "sched_group_upmigrate", .data = &sysctl_sched_group_upmigrate_pct, .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = sched_hmp_proc_update_handler, .extra1 = &zero, }, { .procname = "sched_group_downmigrate", .data = &sysctl_sched_group_downmigrate_pct, .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = sched_hmp_proc_update_handler, .extra1 = &zero, }, { .procname = "sched_init_task_load", .data = &sysctl_sched_init_task_load_pct, Loading Loading
include/linux/sched/sysctl.h +10 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ extern unsigned int sysctl_sched_cpu_high_irqload; extern unsigned int sysctl_sched_use_walt_cpu_util; extern unsigned int sysctl_sched_use_walt_task_util; extern unsigned int sysctl_sched_boost; extern unsigned int sysctl_sched_group_upmigrate_pct; extern unsigned int sysctl_sched_group_downmigrate_pct; #endif #ifdef CONFIG_SCHED_HMP Loading @@ -53,8 +55,6 @@ extern unsigned int sysctl_sched_spill_nr_run; extern unsigned int sysctl_sched_spill_load_pct; extern unsigned int sysctl_sched_upmigrate_pct; extern unsigned int sysctl_sched_downmigrate_pct; extern unsigned int sysctl_sched_group_upmigrate_pct; extern unsigned int sysctl_sched_group_downmigrate_pct; extern unsigned int sysctl_early_detection_duration; extern unsigned int sysctl_sched_small_wakee_task_load_pct; extern unsigned int sysctl_sched_big_waker_task_load_pct; Loading @@ -67,6 +67,14 @@ extern unsigned int sysctl_sched_freq_aggregate_threshold_pct; extern unsigned int sysctl_sched_prefer_sync_wakee_to_waker; extern unsigned int sysctl_sched_short_burst; extern unsigned int sysctl_sched_short_sleep; #elif defined(CONFIG_SCHED_WALT) extern int walt_proc_update_handler(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos); #endif /* CONFIG_SCHED_HMP */ enum sched_tunable_scaling { Loading
kernel/sched/walt.c +30 −0 Original line number Diff line number Diff line Loading @@ -3047,3 +3047,33 @@ void walt_irq_work(struct irq_work *irq_work) core_ctl_check(this_rq()->window_start); } #ifndef CONFIG_SCHED_HMP int walt_proc_update_handler(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos) { int ret; unsigned int *data = (unsigned int *)table->data; static DEFINE_MUTEX(mutex); mutex_lock(&mutex); ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); if (ret || !write) { mutex_unlock(&mutex); return ret; } if (data == &sysctl_sched_group_upmigrate_pct) sched_group_upmigrate = pct_to_real(sysctl_sched_group_upmigrate_pct); else if (data == &sysctl_sched_group_downmigrate_pct) sched_group_downmigrate = pct_to_real(sysctl_sched_group_downmigrate_pct); else ret = -EINVAL; mutex_unlock(&mutex); return ret; } #endif
kernel/sysctl.c +25 −16 Original line number Diff line number Diff line Loading @@ -300,6 +300,31 @@ static struct ctl_table kern_table[] = { .mode = 0644, .proc_handler = proc_dointvec, }, { .procname = "sched_group_upmigrate", .data = &sysctl_sched_group_upmigrate_pct, .maxlen = sizeof(unsigned int), .mode = 0644, #ifdef CONFIG_SCHED_HMP .proc_handler = sched_hmp_proc_update_handler, #else .proc_handler = walt_proc_update_handler, #endif .extra1 = &sysctl_sched_group_downmigrate_pct, }, { .procname = "sched_group_downmigrate", .data = &sysctl_sched_group_downmigrate_pct, .maxlen = sizeof(unsigned int), .mode = 0644, #ifdef CONFIG_SCHED_HMP .proc_handler = sched_hmp_proc_update_handler, #else .proc_handler = walt_proc_update_handler, #endif .extra1 = &zero, .extra2 = &sysctl_sched_group_upmigrate_pct, }, #endif #ifdef CONFIG_SCHED_HMP { Loading Loading @@ -376,22 +401,6 @@ static struct ctl_table kern_table[] = { .extra1 = &zero, .extra2 = &one_hundred, }, { .procname = "sched_group_upmigrate", .data = &sysctl_sched_group_upmigrate_pct, .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = sched_hmp_proc_update_handler, .extra1 = &zero, }, { .procname = "sched_group_downmigrate", .data = &sysctl_sched_group_downmigrate_pct, .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = sched_hmp_proc_update_handler, .extra1 = &zero, }, { .procname = "sched_init_task_load", .data = &sysctl_sched_init_task_load_pct, Loading