From 88f4823be31a48d8cb1ce5c26e6ccb506f95ed0b Mon Sep 17 00:00:00 2001 From: Srinivas Girigowda Date: Wed, 3 Jan 2018 22:58:15 -0800 Subject: [PATCH] sched: Export wake_to_idle API Export wake_to_idle APIs so that external modules can access these functions to improve performance. CRs-Fixed: 2166787 Change-Id: I0863a2e80a303c7584ca52ef81c19d369e840662 Signed-off-by: Srinivas Girigowda --- include/linux/sched.h | 19 ++++++++++++++++--- kernel/sched/fair.c | 2 ++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index fcfed59cedc4..000b0f02ce37 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -184,6 +184,22 @@ extern void sched_get_nr_running_avg(int *avg, int *iowait_avg, int *big_avg, unsigned int *big_max_nr); extern u64 sched_get_cpu_last_busy_time(int cpu); +#ifdef CONFIG_SMP +extern u32 sched_get_wake_up_idle(struct task_struct *p); +extern int sched_set_wake_up_idle(struct task_struct *p, int wake_up_idle); +#else +static inline u32 sched_get_wake_up_idle(struct task_struct *p) +{ + return 0; +} + +static inline int sched_set_wake_up_idle(struct task_struct *p, + int wake_up_idle) +{ + return 0; +} +#endif /* CONFIG_SMP */ + extern void calc_global_load(unsigned long ticks); #if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ_COMMON) @@ -2547,9 +2563,6 @@ struct sched_load { unsigned long predicted_load; }; -extern int sched_set_wake_up_idle(struct task_struct *p, int wake_up_idle); -extern u32 sched_get_wake_up_idle(struct task_struct *p); - struct cpu_cycle_counter_cb { u64 (*get_cpu_cycle_counter)(int cpu); }; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index ce683b0021fd..23e37b0674df 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2641,6 +2641,7 @@ u32 sched_get_wake_up_idle(struct task_struct *p) return !!enabled; } +EXPORT_SYMBOL(sched_get_wake_up_idle); int sched_set_wake_up_idle(struct task_struct *p, int wake_up_idle) { @@ -2653,6 +2654,7 @@ int sched_set_wake_up_idle(struct task_struct *p, int wake_up_idle) return 0; } +EXPORT_SYMBOL(sched_set_wake_up_idle); static const u32 runnable_avg_yN_inv[] = { 0xffffffff, 0xfa83b2da, 0xf5257d14, 0xefe4b99a, 0xeac0c6e6, 0xe5b906e6,