1. 08 Mar, 2016 3 commits
  2. 01 Jan, 2016 1 commit
  3. 12 Dec, 2015 1 commit
  4. 09 Dec, 2015 1 commit
  5. 16 Oct, 2015 1 commit
  6. 28 Aug, 2015 1 commit
  7. 01 Aug, 2015 2 commits
  8. 21 May, 2015 1 commit
  9. 04 May, 2015 1 commit
  10. 15 Apr, 2015 1 commit
  11. 11 Apr, 2015 2 commits
  12. 13 Mar, 2015 1 commit
    • Jacob Pan's avatar
      powercap / RAPL: handle domains with different energy units · d474a4d3
      Jacob Pan authored
      The current driver assumes all RAPL domains within a CPU package
      have the same energy unit. This is no longer true for HSW server
      CPUs since DRAM domain has is own fixed energy unit which can be
      different than the package energy unit enumerated by package
      power MSR. In fact, the default HSW EP package power unit is 61uJ
      whereas DRAM domain unit is 15.3uJ. The result is that DRAM power
      consumption is counted 4x more than real power reported by energy
      counters, similarly for max_energy_range_uj of DRAM domain.
      
      This patch adds domain specific energy unit per cpu type, it allows
      domain energy unit to override package energy unit if non zero.
      
      Please see this document for details.
      "Intel Xeon Processor E5-1600 and E5-2600 v3 Product Families, Volume 2 of 2.
       Datasheet, September 2014, Reference Number: 330784-001 "
      Signed-off-by: default avatarJacob Pan <jacob.jun.pan@linux.intel.com>
      Cc: 3.10+ <stable@vger.kernel.org> # 3.10+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d474a4d3
  13. 17 Dec, 2014 1 commit
  14. 12 Nov, 2014 1 commit
  15. 11 Nov, 2014 3 commits
  16. 02 Sep, 2014 2 commits
  17. 30 Apr, 2014 2 commits
  18. 20 Mar, 2014 1 commit
    • Srivatsa S. Bhat's avatar
      powercap, intel-rapl: Fix CPU hotplug callback registration · 009f225e
      Srivatsa S. Bhat authored
      Subsystems that want to register CPU hotplug callbacks, as well as perform
      initialization for the CPUs that are already online, often do it as shown
      below:
      
      	get_online_cpus();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	register_cpu_notifier(&foobar_cpu_notifier);
      
      	put_online_cpus();
      
      This is wrong, since it is prone to ABBA deadlocks involving the
      cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
      with CPU hotplug operations).
      
      Instead, the correct and race-free way of performing the callback
      registration is:
      
      	cpu_notifier_register_begin();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	/* Note the use of the double underscored version of the API */
      	__register_cpu_notifier(&foobar_cpu_notifier);
      
      	cpu_notifier_register_done();
      
      Fix the intel-rapl code in the powercap driver by using this latter form
      of callback registration. But retain the calls to get/put_online_cpus(),
      since they also protect the function rapl_cleanup_data(). By nesting
      get/put_online_cpus() *inside* cpu_notifier_register_begin/done(), we avoid
      the ABBA deadlock possibility mentioned above.
      
      Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Tested-by: default avatarJacob Pan <jacob.jun.pan@linux.intel.com>
      Signed-off-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      009f225e
  19. 13 Feb, 2014 2 commits
  20. 22 Dec, 2013 1 commit
  21. 05 Dec, 2013 1 commit
  22. 05 Nov, 2013 1 commit
  23. 25 Oct, 2013 1 commit
  24. 18 Oct, 2013 1 commit
  25. 16 Oct, 2013 1 commit