diff options
Diffstat (limited to 'kernel/sched/sched.h')
| -rw-r--r-- | kernel/sched/sched.h | 40 | 
1 files changed, 18 insertions, 22 deletions
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index c64fc5114004..b7fc1ced4380 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1763,27 +1763,13 @@ DECLARE_PER_CPU(struct update_util_data *, cpufreq_update_util_data);  /**   * cpufreq_update_util - Take a note about CPU utilization changes. - * @time: Current time. - * @util: Current utilization. - * @max: Utilization ceiling. + * @rq: Runqueue to carry out the update for. + * @flags: Update reason flags.   * - * This function is called by the scheduler on every invocation of - * update_load_avg() on the CPU whose utilization is being updated. + * This function is called by the scheduler on the CPU whose utilization is + * being updated.   *   * It can only be called from RCU-sched read-side critical sections. - */ -static inline void cpufreq_update_util(u64 time, unsigned long util, unsigned long max) -{ -       struct update_util_data *data; - -       data = rcu_dereference_sched(*this_cpu_ptr(&cpufreq_update_util_data)); -       if (data) -               data->func(data, time, util, max); -} - -/** - * cpufreq_trigger_update - Trigger CPU performance state evaluation if needed. - * @time: Current time.   *   * The way cpufreq is currently arranged requires it to evaluate the CPU   * performance state (frequency/voltage) on a regular basis to prevent it from @@ -1797,13 +1783,23 @@ static inline void cpufreq_update_util(u64 time, unsigned long util, unsigned lo   * but that really is a band-aid.  Going forward it should be replaced with   * solutions targeted more specifically at RT and DL tasks.   */ -static inline void cpufreq_trigger_update(u64 time) +static inline void cpufreq_update_util(struct rq *rq, unsigned int flags) +{ +	struct update_util_data *data; + +	data = rcu_dereference_sched(*this_cpu_ptr(&cpufreq_update_util_data)); +	if (data) +		data->func(data, rq_clock(rq), flags); +} + +static inline void cpufreq_update_this_cpu(struct rq *rq, unsigned int flags)  { -	cpufreq_update_util(time, ULONG_MAX, 0); +	if (cpu_of(rq) == smp_processor_id()) +		cpufreq_update_util(rq, flags);  }  #else -static inline void cpufreq_update_util(u64 time, unsigned long util, unsigned long max) {} -static inline void cpufreq_trigger_update(u64 time) {} +static inline void cpufreq_update_util(struct rq *rq, unsigned int flags) {} +static inline void cpufreq_update_this_cpu(struct rq *rq, unsigned int flags) {}  #endif /* CONFIG_CPU_FREQ */  #ifdef arch_scale_freq_capacity  |