Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754613AbbBZTAs (ORCPT ); Thu, 26 Feb 2015 14:00:48 -0500 Received: from foss.arm.com ([217.140.101.70]:41699 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754586AbbBZTAr (ORCPT ); Thu, 26 Feb 2015 14:00:47 -0500 From: Javi Merino To: edubezval@gmail.com, rui.zhang@intel.com Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, punit.agrawal@arm.com, broonie@kernel.org, tixy@linaro.org, Javi Merino Subject: [PATCH v2 0/7] The power allocator thermal governor Date: Thu, 26 Feb 2015 19:00:26 +0000 Message-Id: <1424977233-15965-1-git-send-email-javi.merino@arm.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5019 Lines: 119 Hi linux-pm, The power allocator governor allocates device power to control temperature. This requires transforming performance requests into requested power, which we do with an extended cooling device API introduced in patch 2 (thermal: extend the cooling device API to include power information). Patch 3 (thermal: cpu_cooling: implement the power cooling device API) extends the cpu cooling device using a simple power model. This series are based on branch "linus" of Eduardo's linux-soc-thermal tree: git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal.git Changes since v1: - Removed a memory leak pointed out by Steve Rostedt - Relax the constraint of the trip points to be the first and last passive trip point as Lina Iyer suggested. - Update how the governor treats weights to mimic the behavior of fair share in v3 of the weight fixes series. - Don't cache the cpufreq_cooling_device and scan for it whenever we need it. - Consider the rate of changes in the derivative term of the PID controller Changes since RFC v6: - Addressed Eduardo's review + Pass the interval to the static power function as suggested by Eduardo + Make the cooling device ops return 0 or -E* and put the calculation in a parameter, like the rest of the cooling device ops + Documentation improvements - Use thermal_cdev_update() to change cooling device states - Add a patch to export the power allocator governor's tzp parameters to sysfs Changes since RFC v5: - Addressed Stephen's review of the trace patches. - Removed power actors and extended the cooling device interface instead. - Let platforms override the power allocator governor parameters in their thermal zone parameters Changes since RFC v4: - Add more tracing - Document some of the limitations of the power allocator governor - Export the power_actor API and move power_actor.h to include/linux Changes since RFC v3: - Use tz->passive to poll faster when the first trip point is hit. - Don't make a special directory for power_actors - Add a DT property for sustainable-power - Simplify the static power interface and pass the current thermal zone in every power_actor_ops to remove the controversial enum power_actor_types - Use locks with the actor_list list - Use cpufreq_get() to get the frequency of the cpu instead of using the notifiers. - Remove the prompt for THERMAL_POWER_ACTOR_CPU when configuring the kernel Changes since RFC v2: - Changed the PI controller into a PID controller - Added static power to the cpu power model - tz parameter max_dissipatable_power renamed to sustainable_power - Register the cpufreq cooling device as part of the power_cpu_actor registration. Changes since RFC v1: - Fixed finding cpufreq cooling devices in cpufreq_frequency_change() - Replaced the cooling device interface with a separate power actor API - Addressed most of Eduardo's comments - Incorporated ftrace support for bitmask to trace cpumasks Cheers, Javi & Punit Javi Merino (6): thermal: let governors have private data for each thermal zone thermal: extend the cooling device API to include power information thermal: cpu_cooling: implement the power cooling device API thermal: introduce the Power Allocator governor thermal: add trace events to the power allocator governor thermal: export thermal_zone_parameters to sysfs Punit Agrawal (1): of: thermal: Introduce sustainable power for a thermal zone .../devicetree/bindings/thermal/thermal.txt | 9 + Documentation/thermal/cpu-cooling-api.txt | 156 +++++- Documentation/thermal/power_allocator.txt | 247 +++++++++ Documentation/thermal/sysfs-api.txt | 52 ++ drivers/thermal/Kconfig | 15 + drivers/thermal/Makefile | 1 + drivers/thermal/cpu_cooling.c | 610 ++++++++++++++++++++- drivers/thermal/of-thermal.c | 4 + drivers/thermal/power_allocator.c | 533 ++++++++++++++++++ drivers/thermal/thermal_core.c | 254 ++++++++- drivers/thermal/thermal_core.h | 8 + include/linux/cpu_cooling.h | 39 ++ include/linux/thermal.h | 64 ++- include/trace/events/thermal.h | 58 ++ include/trace/events/thermal_power_allocator.h | 87 +++ 15 files changed, 2104 insertions(+), 33 deletions(-) create mode 100644 Documentation/thermal/power_allocator.txt create mode 100644 drivers/thermal/power_allocator.c create mode 100644 include/trace/events/thermal_power_allocator.h -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/