On Sun, Mar 13, 2016 at 10:22:09PM -0700, Michael Turquette wrote:
> +++ b/include/linux/sched.h
> @@ -2362,15 +2362,25 @@ extern u64 scheduler_tick_max_deferment(void);
>  static inline bool sched_can_stop_tick(void) { return false; }
>  #endif
>  
> +enum sched_class_util {
> +     cfs_util,
> +     rt_util,
> +     dl_util,
> +     nr_util_types,
> +};
> +
>  #ifdef CONFIG_CPU_FREQ
>  struct freq_update_hook {
> +     void (*func)(struct freq_update_hook *hook,
> +                  enum sched_class_util sched_class, u64 time,
>                    unsigned long util, unsigned long max);
>  };
>  
>  void cpufreq_set_freq_update_hook(int cpu, struct freq_update_hook *hook,
> +                     void (*func)(struct freq_update_hook *hook,
> +                                  enum sched_class_util sched_class,
> +                                  u64 time, unsigned long util,
> +                                  unsigned long max));

Have you looked at the asm that generated? At some point you'll start
spilling on the stack and it'll be a god awful mess.

Reply via email to