On 26-05-16, 00:23, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wyso...@intel.com> > > The modularity of cpufreq_stats is quite problematic. > > First off, the usage of policy notifiers for the initialization > and cleanup in the cpufreq_stats module is inherently racy with > respect to CPU offline/online and the initialization and cleanup > of the cpufreq driver. > > Second, fast frequency switching (used by the schedutil governor) > cannot be enabled if any transition notifiers are registered, so > if the cpufreq_stats module (that registers a transition notifier > for updating transition statistics) is loaded, the schedutil governor > cannot use fast frequency switching. > > On the other hand, allowing cpufreq_stats to be built as a module > doesn't really add much value. Arguably, there's not much reason > for that code to be modular at all. > > For the above reasons, make the cpufreq stats code non-modular, > modify the core to invoke functions provided by that code directly > and drop the notifiers from it. > > While at it, clean up Kconfig help for the CPU_FREQ_STAT and > CPU_FREQ_STAT_DETAILS options. > > Signed-off-by: Rafael J. Wysocki <rafael.j.wyso...@intel.com> > --- > drivers/cpufreq/Kconfig | 13 +-- > drivers/cpufreq/cpufreq.c | 4 + > drivers/cpufreq/cpufreq_stats.c | 146 > +++------------------------------------- > include/linux/cpufreq.h | 12 +++ > 4 files changed, 34 insertions(+), 141 deletions(-)
Looks far better now :) Acked-by: Viresh Kumar <viresh.ku...@linaro.org> -- viresh