diff --git a/include/linux/sched.h b/include/linux/sched.h index eb32de4fdda7..70487c394701 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -832,7 +832,7 @@ struct task_struct { struct list_head grp_list; u64 cpu_cycles; bool misfit; - u8 unfilter; + u32 unfilter; #endif #ifdef CONFIG_CGROUP_SCHED diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h index 414584fc74d0..150db62ae104 100644 --- a/include/linux/sched/sysctl.h +++ b/include/linux/sched/sysctl.h @@ -43,7 +43,7 @@ extern unsigned int __weak sysctl_sched_min_task_util_for_boost; extern unsigned int __weak sysctl_sched_min_task_util_for_colocation; extern unsigned int __weak sysctl_sched_asym_cap_sibling_freq_match_pct; extern unsigned int __weak sysctl_sched_coloc_downmigrate_ns; -extern unsigned int __weak sysctl_sched_task_unfilter_nr_windows; +extern unsigned int __weak sysctl_sched_task_unfilter_period; extern unsigned int __weak sysctl_sched_busy_hyst_enable_cpus; extern unsigned int __weak sysctl_sched_busy_hyst; extern unsigned int __weak sysctl_sched_coloc_busy_hyst_enable_cpus; diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index d1440b5a4ccf..e6fa9fe233e9 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -1019,7 +1019,7 @@ TRACE_EVENT(sched_task_util, __field(bool, is_rtg) __field(bool, rtg_skip_min) __field(int, start_cpu) - __field(int, unfilter) + __field(u32, unfilter) __field(unsigned long, cpus_allowed) __field(int, task_boost) ), @@ -1054,7 +1054,7 @@ TRACE_EVENT(sched_task_util, #endif ), - TP_printk("pid=%d comm=%s util=%lu prev_cpu=%d candidates=%#lx best_energy_cpu=%d sync=%d need_idle=%d fastpath=%d placement_boost=%d latency=%llu stune_boosted=%d is_rtg=%d rtg_skip_min=%d start_cpu=%d unfilter=%d affinity=%lx task_boost=%d", + TP_printk("pid=%d comm=%s util=%lu prev_cpu=%d candidates=%#lx best_energy_cpu=%d sync=%d need_idle=%d fastpath=%d placement_boost=%d latency=%llu stune_boosted=%d is_rtg=%d rtg_skip_min=%d start_cpu=%d unfilter=%u affinity=%lx task_boost=%d", __entry->pid, __entry->comm, __entry->util, __entry->prev_cpu, __entry->candidates, __entry->best_energy_cpu, __entry->sync, __entry->need_idle, __entry->fastpath, __entry->placement_boost, diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 6f750675ef31..f38bae0fc9b4 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -148,6 +148,7 @@ static int two_hundred_fifty_five = 255; const int sched_user_hint_max = 1000; static unsigned int ns_per_sec = NSEC_PER_SEC; static unsigned int one_hundred_thousand = 100000; +static unsigned int two_hundred_million = 200000000; #endif /* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */ @@ -471,13 +472,13 @@ static struct ctl_table kern_table[] = { .proc_handler = proc_douintvec_minmax, }, { - .procname = "sched_task_unfilter_nr_windows", - .data = &sysctl_sched_task_unfilter_nr_windows, + .procname = "sched_task_unfilter_period", + .data = &sysctl_sched_task_unfilter_period, .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = SYSCTL_ONE, - .extra2 = &two_hundred_fifty_five, + .extra2 = &two_hundred_million, }, { .procname = "sched_busy_hysteresis_enable_cpus",