1. 12 5月, 2016 1 次提交
  2. 07 5月, 2016 1 次提交
  3. 09 4月, 2016 1 次提交
  4. 02 4月, 2016 2 次提交
    • R
      cpufreq: schedutil: New governor based on scheduler utilization data · 9bdcb44e
      Rafael J. Wysocki 提交于
      Add a new cpufreq scaling governor, called "schedutil", that uses
      scheduler-provided CPU utilization information as input for making
      its decisions.
      
      Doing that is possible after commit 34e2c555 (cpufreq: Add
      mechanism for registering utilization update callbacks) that
      introduced cpufreq_update_util() called by the scheduler on
      utilization changes (from CFS) and RT/DL task status updates.
      In particular, CPU frequency scaling decisions may be based on
      the the utilization data passed to cpufreq_update_util() by CFS.
      
      The new governor is relatively simple.
      
      The frequency selection formula used by it depends on whether or not
      the utilization is frequency-invariant.  In the frequency-invariant
      case the new CPU frequency is given by
      
      	next_freq = 1.25 * max_freq * util / max
      
      where util and max are the last two arguments of cpufreq_update_util().
      In turn, if util is not frequency-invariant, the maximum frequency in
      the above formula is replaced with the current frequency of the CPU:
      
      	next_freq = 1.25 * curr_freq * util / max
      
      The coefficient 1.25 corresponds to the frequency tipping point at
      (util / max) = 0.8.
      
      All of the computations are carried out in the utilization update
      handlers provided by the new governor.  One of those handlers is
      used for cpufreq policies shared between multiple CPUs and the other
      one is for policies with one CPU only (and therefore it doesn't need
      to use any extra synchronization means).
      
      The governor supports fast frequency switching if that is supported
      by the cpufreq driver in use and possible for the given policy.
      In the fast switching case, all operations of the governor take
      place in its utilization update handlers.  If fast switching cannot
      be used, the frequency switch operations are carried out with the
      help of a work item which only calls __cpufreq_driver_target()
      (under a mutex) to trigger a frequency update (to a value already
      computed beforehand in one of the utilization update handlers).
      
      Currently, the governor treats all of the RT and DL tasks as
      "unknown utilization" and sets the frequency to the allowed
      maximum when updated from the RT or DL sched classes.  That
      heavy-handed approach should be replaced with something more
      subtle and specifically targeted at RT and DL tasks.
      
      The governor shares some tunables management code with the
      "ondemand" and "conservative" governors and uses some common
      definitions from cpufreq_governor.h, but apart from that it
      is stand-alone.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Acked-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
      9bdcb44e
    • R
      cpufreq: governor: Move abstract gov_attr_set code to seperate file · 2d0c58ad
      Rafael J. Wysocki 提交于
      Move abstract code related to struct gov_attr_set to a separate (new)
      file so it can be shared with (future) goverernors that won't share
      more code with "ondemand" and "conservative".
      
      No intentional functional changes.
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      2d0c58ad
  5. 09 3月, 2016 2 次提交
  6. 01 3月, 2016 1 次提交
  7. 19 3月, 2015 1 次提交
  8. 07 1月, 2015 1 次提交
    • P
      rcu: Make SRCU optional by using CONFIG_SRCU · 83fe27ea
      Pranith Kumar 提交于
      SRCU is not necessary to be compiled by default in all cases. For tinification
      efforts not compiling SRCU unless necessary is desirable.
      
      The current patch tries to make compiling SRCU optional by introducing a new
      Kconfig option CONFIG_SRCU which is selected when any of the components making
      use of SRCU are selected.
      
      If we do not select CONFIG_SRCU, srcu.o will not be compiled at all.
      
         text    data     bss     dec     hex filename
         2007       0       0    2007     7d7 kernel/rcu/srcu.o
      
      Size of arch/powerpc/boot/zImage changes from
      
         text    data     bss     dec     hex filename
       831552   64180   23944  919676   e087c arch/powerpc/boot/zImage : before
       829504   64180   23952  917636   e0084 arch/powerpc/boot/zImage : after
      
      so the savings are about ~2000 bytes.
      Signed-off-by: NPranith Kumar <bobby.prani@gmail.com>
      CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      CC: Josh Triplett <josh@joshtriplett.org>
      CC: Lai Jiangshan <laijs@cn.fujitsu.com>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      [ paulmck: resolve conflict due to removal of arch/ia64/kvm/Kconfig. ]
      83fe27ea
  9. 18 11月, 2014 1 次提交
  10. 06 11月, 2014 2 次提交
  11. 03 10月, 2014 1 次提交
  12. 17 6月, 2014 1 次提交
  13. 11 6月, 2014 1 次提交
    • V
      cpufreq: cpufreq-cpu0: remove dependency on THERMAL and REGULATOR · 5fbfbcd3
      Viresh Kumar 提交于
      cpufreq-cpu0 uses thermal framework to register a cooling device, but doesn't
      depend on it as there are dummy calls provided by thermal layer when
      CONFIG_THERMAL=n. And when these calls fail, the driver is still usable.
      
      Similar explanation is valid for regulators as well. We do have dummy calls
      available for regulator APIs and the driver can work even when those calls
      fail.
      
      So, we don't really need to mention thermal and regulators as a dependency for
      cpufreq-cpu0 in Kconfig as platforms without support for thermal/regulator can
      also use this driver. Remove this dependency.
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5fbfbcd3
  14. 01 3月, 2014 1 次提交
  15. 28 2月, 2014 1 次提交
  16. 17 1月, 2014 1 次提交
  17. 23 12月, 2013 1 次提交
  18. 04 12月, 2013 1 次提交
    • E
      cpufreq: cpufreq-cpu0: add dt node parsing for cooling device properties · 77cff592
      Eduardo Valentin 提交于
      This patch changes the cpufreq-cpu0 driver to consider if
      a cpu needs cooling (with cpufreq). In case the cooling is needed,
      the cpu0 device tree node needs to be properly configured
      with cooling device properties.
      
      In case these properties are present,, the driver will
      load a cpufreq cooling device in the system. The cpufreq-cpu0
      driver is not interested in determining how the system should
      be using the cooling device. The driver is responsible
      only of loading the cooling device.
      
      Describing how the cooling device will be used can be
      accomplished by setting up a thermal zone that references
      and is composed by the cpufreq cooling device.
      
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Grant Likely <grant.likely@linaro.org>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Cc: cpufreq@vger.kernel.org
      Cc: linux-pm@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Cc: devicetree-discuss@lists.ozlabs.org
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NEduardo Valentin <eduardo.valentin@ti.com>
      77cff592
  19. 16 10月, 2013 2 次提交
  20. 12 5月, 2013 1 次提交
  21. 10 4月, 2013 5 次提交
  22. 02 2月, 2013 1 次提交
  23. 03 1月, 2013 1 次提交
    • L
      cpufreq / governor: Fix problem with cpufreq_ondemand or cpufreq_conservative · 1e15f295
      Larry Finger 提交于
      Since commit 2aacdfff entitled "cpufreq: Move common part from governors
      to separate file", whenever the drivers that depend on this new file
      (cpufreq_ondemand or cpufreq_conservative) are built as modules, a new
      module named cpufreq_governor is created because the Makefile includes
      cpufreq_governor.o twice. As drivers/cpufreq/cpufreq_governor.c contains no
      MODULE directives, the resulting module has no license specified, which
      results in logging of a "module license 'unspecified' taints kernel". In
      addition, a number of globals are exported GPL only, and are therefore
      not available. This fix establishes a new boolean configuration variable
      that forces cpufreq_governor.o to be linked into the kernel whenever
      either cpufreq_ondemand or cpufreq_conservative is selected.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Reviewed-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      1e15f295
  24. 10 9月, 2012 1 次提交
  25. 19 7月, 2011 1 次提交
  26. 14 7月, 2011 1 次提交
  27. 20 5月, 2011 1 次提交
  28. 04 5月, 2011 1 次提交
    • D
      [CPUFREQ] use dynamic debug instead of custom infrastructure · 2d06d8c4
      Dominik Brodowski 提交于
      With dynamic debug having gained the capability to report debug messages
      also during the boot process, it offers a far superior interface for
      debug messages than the custom cpufreq infrastructure. As a first step,
      remove the old cpufreq_debug_printk() function and replace it with a call
      to the generic pr_debug() function.
      
      How can dynamic debug be used on cpufreq? You need a kernel which has
      CONFIG_DYNAMIC_DEBUG enabled.
      
      To enabled debugging during runtime, mount debugfs and
      
      $ echo -n 'module cpufreq +p' > /sys/kernel/debug/dynamic_debug/control
      
      for debugging the complete "cpufreq" module. To achieve the same goal during
      boot, append
      
      	ddebug_query="module cpufreq +p"
      
      as a boot parameter to the kernel of your choice.
      
      For more detailled instructions, please see
      Documentation/dynamic-debug-howto.txt
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: NDave Jones <davej@redhat.com>
      2d06d8c4
  29. 21 1月, 2011 1 次提交
    • D
      kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT · 6a108a14
      David Rientjes 提交于
      The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
      is used to configure any non-standard kernel with a much larger scope than
      only small devices.
      
      This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
      references to the option throughout the kernel.  A new CONFIG_EMBEDDED
      option is added that automatically selects CONFIG_EXPERT when enabled and
      can be used in the future to isolate options that should only be
      considered for embedded systems (RISC architectures, SLOB, etc).
      
      Calling the option "EXPERT" more accurately represents its intention: only
      expert users who understand the impact of the configuration changes they
      are making should enable it.
      Reviewed-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NDavid Woodhouse <david.woodhouse@intel.com>
      Signed-off-by: NDavid Rientjes <rientjes@google.com>
      Cc: Greg KH <gregkh@suse.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Robin Holt <holt@sgi.com>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6a108a14
  30. 06 1月, 2009 1 次提交
  31. 29 4月, 2008 1 次提交
  32. 07 2月, 2008 1 次提交