1. 19 12月, 2014 1 次提交
    • T
      tick/powerclamp: Remove tick_nohz_idle abuse · a5fd9733
      Thomas Gleixner 提交于
      commit 4dbd2771 "tick: export nohz tick idle symbols for module
      use" was merged via the thermal tree without an explicit ack from the
      relevant maintainers.
      
      The exports are abused by the intel powerclamp driver which implements
      a fake idle state from a sched FIFO task. This causes all kinds of
      wreckage in the NOHZ core code which rightfully assumes that
      tick_nohz_idle_enter/exit() are only called from the idle task itself.
      
      Recent changes in the NOHZ core lead to a failure of the powerclamp
      driver and now people try to hack completely broken and backwards
      workarounds into the NOHZ core code. This is completely unacceptable
      and just papers over the real problem. There are way more subtle
      issues lurking around the corner.
      
      The real solution is to fix the powerclamp driver by rewriting it with
      a sane concept, but that's beyond the scope of this.
      
      So the only solution for now is to remove the calls into the core NOHZ
      code from the powerclamp trainwreck along with the exports. 
      
      Fixes: d6d71ee4 "PM: Introduce Intel PowerClamp Driver"
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Preeti U Murthy <preeti@linux.vnet.ibm.com>
      Cc: Viresh Kumar <viresh.kumar@linaro.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Fengguang Wu <fengguang.wu@intel.com>
      Cc: Frederic Weisbecker <frederic@kernel.org>
      Cc: Pan Jacob jun <jacob.jun.pan@intel.com>
      Cc: LKP <lkp@01.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: stable@vger.kernel.org
      Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1412181110110.17382@nanosSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      a5fd9733
  2. 09 12月, 2014 12 次提交
  3. 08 12月, 2014 3 次提交
  4. 25 11月, 2014 2 次提交
  5. 22 11月, 2014 2 次提交
  6. 21 11月, 2014 1 次提交
    • Y
      thermal: cpu_cooling: Update always cpufreq policy with thermal constraints · 2dcd851f
      Yadwinder Singh Brar 提交于
      Existing code updates cupfreq policy only while executing
      cpufreq_apply_cooling() function (i.e. when notify_device != NOTIFY_INVALID).
      It doesn't apply constraints when cpufreq policy update happens from any other
      place but it should update the cpufreq policy with thermal constraints every
      time when there is a cpufreq policy update, to keep state of
      cpufreq_cooling_device and max_feq of cpufreq policy in sync. For instance
      while resuming cpufreq updates cpufreq_policy and it restores default
      policy->usr_policy values irrespective of cooling device's cpufreq_state since
      notification gets missed because (notify_device == NOTIFY_INVALID).
      Another problem, is that userspace is able to change max_freq irrespective of
      cooling device's state, as notification gets missed.
      
      This patch modifies code to maintain a global cpufreq_dev_list and applies
      constraints of all matching cooling devices for policy's cpu when there is any
      policy update(ends up applying the lowest max_freq among the matching cpu
      cooling devices).
      
      This patch also removes redundant check (max_freq > policy->user_policy.max),
      as cpufreq framework takes care of user_policy constraints already where ever
      required, otherwise its causing an issue while increasing max_freq in normal
      scenerio as it restores max_freq with policy->user_policy.max which is old
      (smaller) value.
      Signed-off-by: NYadwinder Singh Brar <yadi.brar@samsung.com>
      Signed-off-by: NEduardo Valentin <edubezval@gmail.com>
      2dcd851f
  7. 20 11月, 2014 19 次提交