Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp441500ybb; Fri, 10 Apr 2020 03:15:35 -0700 (PDT) X-Google-Smtp-Source: APiQypK7nsa0DLfjGgc+fSLxGgQfKlb1OThCj0be2DpOcl/i/R8u646BvA9ZcbhAaWtGoFpdLoiE X-Received: by 2002:a05:620a:11b0:: with SMTP id c16mr3328409qkk.309.1586513735601; Fri, 10 Apr 2020 03:15:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586513735; cv=none; d=google.com; s=arc-20160816; b=DwA5Wj7AXTjKNHYkPRePZoPulJ2nlluXECun84Gk9A/eNBtgsSpHtXpevfq2p7iX1V V8SzvJkgBZtg+bUg0zoB1fg3Mmx9K0xSdFKlF+h2+z4WKkC9yYzTKEHtlrVp81pmqGYH AyJg0Q9aQJG+u7vyzgMNi/sQGiN8/XGGUAwnMd9fsObZPnXyMwJhv4HAE7otSgFVMz8F jerzSBF0sPn0mlJ2y6TsSJlVZYzkw71EKGqVpE0P8Pkxm9O1hLU4fliD8hO2QxycZgy7 es8jj1ZUZWQcPiadcS3qKY+aw1CsQwljs6f3+9bJ9Yp1c+2t2/cnPHP4NTkogr6OBeJh Zijg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :ironport-sdr:ironport-sdr; bh=jygvzpDwt/EqBjXdn/36xmPhpNgwGa3wpE9DNqlB7I4=; b=KqJLSzmclfp3w6N5rFYQKkBk7yyCmhj5jQlUdf01b41Ccm5t0kALUHmdFOJ7SGumo/ qgMnPrC0D0K7oXUOehYG4YYrREzr/5129PKxS5XIjfN2tdDjYJLTBwWKls8Ps16egfM8 bYefnNGTn9pFGCia2gLj7YD71if6oqGOlTn/UT0mDYYc3V5scbTpvDVw8cVtFlxfLtnH WSiqX50GMmXS1Zw9PJxs7II4HZ3BParcomcgvkqxHwEGWvSpZSTic1TyDuAlQGoVTlfy gVmZEFEUlOuaoGqOO3IIWwOfEPu5GZpHs3MJpBeD9cr8RuBy3OhuDlOOAshtC26R7qpn kIag== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y45si791433qvf.7.2020.04.10.03.15.20; Fri, 10 Apr 2020 03:15:35 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725975AbgDJKOL (ORCPT + 99 others); Fri, 10 Apr 2020 06:14:11 -0400 Received: from mga02.intel.com ([134.134.136.20]:35404 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725893AbgDJKOL (ORCPT ); Fri, 10 Apr 2020 06:14:11 -0400 IronPort-SDR: lEAAHwxNYLaVaWCPPSMq63WM/1ghUIAhBnoOJFhfyHCPMklvbFQ+311Ioh9yqqWLcHEIbOaQTa +X/iECOtrvgg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Apr 2020 03:14:10 -0700 IronPort-SDR: znwmLGqGF7fBrxbjOQHuDL9fIjHD9nBDwbGOgyLlWixbox6ihlAJtbZRPT8E9bvFR1EixwvFk2 MGfV9tIeJbrA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,366,1580803200"; d="scan'208";a="255435504" Received: from qjbian-mobl.amr.corp.intel.com ([10.255.31.146]) by orsmga006.jf.intel.com with ESMTP; 10 Apr 2020 03:14:09 -0700 Message-ID: <8e4c2825d71e5bf5602b92937a49c04187c68e17.camel@intel.com> Subject: Re: [PATCH 1/2] thermal: core: Move thermal_cdev_update next to updated=false From: Zhang Rui To: Daniel Lezcano Cc: linux-kernel@vger.kernel.org, amit.kucheria@verdurent.com, "open list:THERMAL" Date: Fri, 10 Apr 2020 18:14:08 +0800 In-Reply-To: <20200409151515.6607-1-daniel.lezcano@linaro.org> References: <20200409151515.6607-1-daniel.lezcano@linaro.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Daniel, On Thu, 2020-04-09 at 17:15 +0200, Daniel Lezcano wrote: > The call to the thermal_cdev_update() function is done after browsing > the thermal instances which sets the updated flag by browsing them > again. > > Instead of doing this, let's move the call right after setting the > cooling device 'updated' flag as it is done in the other governors. The reason we do this in two steps is that we want to avoid redundant cooling device state changes. Further more, I think it is better to move the thermal_cdev_update out of .throllte() callback, to thermal_zone_device_update(). So that we do not need to update the cooling device for each trip point. is there any specific reason we need to do thermal_cdev_update() for every potential change? thanks, rui > > Signed-off-by: Daniel Lezcano > --- > drivers/thermal/gov_bang_bang.c | 10 +--------- > drivers/thermal/step_wise.c | 10 +--------- > 2 files changed, 2 insertions(+), 18 deletions(-) > > diff --git a/drivers/thermal/gov_bang_bang.c > b/drivers/thermal/gov_bang_bang.c > index 991a1c54296d..c292a69845bb 100644 > --- a/drivers/thermal/gov_bang_bang.c > +++ b/drivers/thermal/gov_bang_bang.c > @@ -64,6 +64,7 @@ static void thermal_zone_trip_update(struct > thermal_zone_device *tz, int trip) > mutex_lock(&instance->cdev->lock); > instance->cdev->updated = false; /* cdev needs update > */ > mutex_unlock(&instance->cdev->lock); > + thermal_cdev_update(instance->cdev); > } > > mutex_unlock(&tz->lock); > @@ -98,17 +99,8 @@ static void thermal_zone_trip_update(struct > thermal_zone_device *tz, int trip) > */ > static int bang_bang_control(struct thermal_zone_device *tz, int > trip) > { > - struct thermal_instance *instance; > - > thermal_zone_trip_update(tz, trip); > > - mutex_lock(&tz->lock); > - > - list_for_each_entry(instance, &tz->thermal_instances, tz_node) > - thermal_cdev_update(instance->cdev); > - > - mutex_unlock(&tz->lock); > - > return 0; > } > > diff --git a/drivers/thermal/step_wise.c > b/drivers/thermal/step_wise.c > index 2ae7198d3067..298eedac0293 100644 > --- a/drivers/thermal/step_wise.c > +++ b/drivers/thermal/step_wise.c > @@ -167,6 +167,7 @@ static void thermal_zone_trip_update(struct > thermal_zone_device *tz, int trip) > mutex_lock(&instance->cdev->lock); > instance->cdev->updated = false; /* cdev needs update > */ > mutex_unlock(&instance->cdev->lock); > + thermal_cdev_update(instance->cdev); > } > > mutex_unlock(&tz->lock); > @@ -185,20 +186,11 @@ static void thermal_zone_trip_update(struct > thermal_zone_device *tz, int trip) > */ > static int step_wise_throttle(struct thermal_zone_device *tz, int > trip) > { > - struct thermal_instance *instance; > - > thermal_zone_trip_update(tz, trip); > > if (tz->forced_passive) > thermal_zone_trip_update(tz, THERMAL_TRIPS_NONE); > > - mutex_lock(&tz->lock); > - > - list_for_each_entry(instance, &tz->thermal_instances, tz_node) > - thermal_cdev_update(instance->cdev); > - > - mutex_unlock(&tz->lock); > - > return 0; > } >