From patchwork Fri Jul 17 11:14:36 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Punit Agrawal X-Patchwork-Id: 6815161 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 936E39F2F0 for ; Fri, 17 Jul 2015 11:18:19 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 880D02041D for ; Fri, 17 Jul 2015 11:18:18 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7ACE320396 for ; Fri, 17 Jul 2015 11:18:17 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZG3cA-0006UI-LG; Fri, 17 Jul 2015 11:15:38 +0000 Received: from fw-tnat.cambridge.arm.com ([217.140.96.140] helo=cam-smtp0.cambridge.arm.com) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZG3c7-0006JS-36 for linux-arm-kernel@lists.infradead.org; Fri, 17 Jul 2015 11:15:35 +0000 Received: from e105922-lin.cambridge.arm.com (e105922-lin.cambridge.arm.com [10.2.135.144]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with SMTP id t6HBDLGT024686; Fri, 17 Jul 2015 12:13:21 +0100 Received: by e105922-lin.cambridge.arm.com (sSMTP sendmail emulation); Fri, 17 Jul 2015 12:14:37 +0100 From: Punit Agrawal To: Sascha Hauer Subject: Re: [PATCH] thermal: consistently use int for temperatures References: <1436167189-29835-1-git-send-email-s.hauer@pengutronix.de> Date: Fri, 17 Jul 2015 12:14:36 +0100 In-Reply-To: <1436167189-29835-1-git-send-email-s.hauer@pengutronix.de> (Sascha Hauer's message of "Mon, 6 Jul 2015 09:19:49 +0200") Message-ID: <9hhd1zrc9yb.fsf@e105922-lin.cambridge.arm.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20150717_041535_496758_8377F0F6 X-CRM114-Status: GOOD ( 18.83 ) X-Spam-Score: -5.5 (-----) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lukasz Majewski , linux-samsung-soc@vger.kernel.org, Heiko Stuebner , linux-pm@vger.kernel.org, "Rafael J. Wysocki" , lm-sensors@lm-sensors.org, Stephen Warren , Peter Feuerer , linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, Eduardo Valentin , linux-acpi@vger.kernel.org, Thierry Reding , Guenter Roeck , linux-arm-kernel@lists.infradead.org, Darren Hart , Zhang Rui , linux-omap@vger.kernel.org, Maxime Ripard , Jean Delvare Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi Sascha, Sascha Hauer writes: > The thermal code uses int, long and unsigned long for temperatures > in different places. > > Using an unsigned type limits the thermal framework to positive > temperatures without need. Also several drivers currently will report > temperatures near UINT_MAX for temperatures below 0°C. This will probably > immediately shut the machine down due to overtemperature if started below > 0°C. > > 'long' is 64bit on several architectures. This is not needed since INT_MAX °mC > is above the melting point of all known materials. > > Consistently use a plain 'int' for temperatures throughout the thermal code and > the drivers. This only changes the places in the drivers where the temperature > is passed around as pointer, when drivers internally use another type this is > not changed. > > Signed-off-by: Sascha Hauer Thanks for moving over the thermal sub-system in Linux to consistently use a single type. In your patch, you missed migrating over power_allocator governor and it's associated trace events. It got merged for v4.2. Could you incorporate something like below in your next version? Thanks, Punit [...] --------------->8----------------------- Subject: [PATCH] Use int for temperature in power_allocator governor --- drivers/thermal/power_allocator.c | 10 ++++------ include/trace/events/thermal_power_allocator.h | 6 +++--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/thermal/power_allocator.c b/drivers/thermal/power_allocator.c index 4672250..1bb7d7f 100644 --- a/drivers/thermal/power_allocator.c +++ b/drivers/thermal/power_allocator.c @@ -92,8 +92,7 @@ struct power_allocator_params { * Return: The power budget for the next period. */ static u32 pid_controller(struct thermal_zone_device *tz, - unsigned long current_temp, - unsigned long control_temp, + int current_temp, int control_temp, u32 max_allocatable_power) { s64 p, i, d, power_range; @@ -223,8 +222,7 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors, } static int allocate_power(struct thermal_zone_device *tz, - unsigned long current_temp, - unsigned long control_temp) + int current_temp, int control_temp) { struct thermal_instance *instance; struct power_allocator_params *params = tz->governor_data; @@ -411,7 +409,7 @@ static int power_allocator_bind(struct thermal_zone_device *tz) { int ret; struct power_allocator_params *params; - unsigned long switch_on_temp, control_temp; + int switch_on_temp, control_temp; u32 temperature_threshold; if (!tz->tzp || !tz->tzp->sustainable_power) { @@ -476,7 +474,7 @@ static void power_allocator_unbind(struct thermal_zone_device *tz) static int power_allocator_throttle(struct thermal_zone_device *tz, int trip) { int ret; - unsigned long switch_on_temp, control_temp, current_temp; + int switch_on_temp, control_temp, current_temp; struct power_allocator_params *params = tz->governor_data; /* diff --git a/include/trace/events/thermal_power_allocator.h b/include/trace/events/thermal_power_allocator.h index 12e1321..5afae8f 100644 --- a/include/trace/events/thermal_power_allocator.h +++ b/include/trace/events/thermal_power_allocator.h @@ -11,7 +11,7 @@ TRACE_EVENT(thermal_power_allocator, u32 total_req_power, u32 *granted_power, u32 total_granted_power, size_t num_actors, u32 power_range, u32 max_allocatable_power, - unsigned long current_temp, s32 delta_temp), + int current_temp, s32 delta_temp), TP_ARGS(tz, req_power, total_req_power, granted_power, total_granted_power, num_actors, power_range, max_allocatable_power, current_temp, delta_temp), @@ -24,7 +24,7 @@ TRACE_EVENT(thermal_power_allocator, __field(size_t, num_actors ) __field(u32, power_range ) __field(u32, max_allocatable_power ) - __field(unsigned long, current_temp ) + __field(int, current_temp ) __field(s32, delta_temp ) ), TP_fast_assign( @@ -42,7 +42,7 @@ TRACE_EVENT(thermal_power_allocator, __entry->delta_temp = delta_temp; ), - TP_printk("thermal_zone_id=%d req_power={%s} total_req_power=%u granted_power={%s} total_granted_power=%u power_range=%u max_allocatable_power=%u current_temperature=%lu delta_temperature=%d", + TP_printk("thermal_zone_id=%d req_power={%s} total_req_power=%u granted_power={%s} total_granted_power=%u power_range=%u max_allocatable_power=%u current_temperature=%d delta_temperature=%d", __entry->tz_id, __print_array(__get_dynamic_array(req_power), __entry->num_actors, 4),