lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150812164648.GD2695@e104805>
Date:	Wed, 12 Aug 2015 17:46:48 +0100
From:	Javi Merino <javi.merino@....com>
To:	Daniel Kurtz <djkurtz@...omium.org>
Cc:	"linux-pm@...r.kernel.org" <linux-pm@...r.kernel.org>,
	Dmitry Torokhov <dmitry.torokhov@...il.com>,
	Chung-yih Wang <cywang@...omium.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	Punit Agrawal <Punit.Agrawal@....com>,
	Zhang Rui <rui.zhang@...el.com>,
	Eduardo Valentin <edubezval@...il.com>
Subject: Re: [PATCH v2 2/4] thermal: power_allocator: relax the requirement
 of two passive trip points

On Wed, Aug 12, 2015 at 12:13:09PM +0100, Daniel Kurtz wrote:
> Hi Javi,

Hi Daniel,

> On Tue, Aug 11, 2015 at 6:21 PM, Javi Merino <javi.merino@....com> wrote:
> > The power allocator governor currently requires that the thermal zone
> > has at least two passive trip points.  If there aren't, the governor
> > refuses to bind to the thermal zone.
> >
> > This commit relaxes that requirement.  Now the governor will bind to all
> > thermal zones regardless of how many trip points they have.
> >
> > Cc: Zhang Rui <rui.zhang@...el.com>
> > Cc: Eduardo Valentin <edubezval@...il.com>
> > Signed-off-by: Javi Merino <javi.merino@....com>
> > ---
> >  Documentation/thermal/power_allocator.txt |  2 +-
> >  drivers/thermal/power_allocator.c         | 91 +++++++++++++++++--------------
> >  2 files changed, 52 insertions(+), 41 deletions(-)
> >
> > diff --git a/Documentation/thermal/power_allocator.txt b/Documentation/thermal/power_allocator.txt
> > index c3797b529991..a1ce2235f121 100644
> > --- a/Documentation/thermal/power_allocator.txt
> > +++ b/Documentation/thermal/power_allocator.txt
> > @@ -4,7 +4,7 @@ Power allocator governor tunables
> >  Trip points
> >  -----------
> >
> > -The governor requires the following two passive trip points:
> > +The governor works optimally with the following two passive trip points:
> >
> >  1.  "switch on" trip point: temperature above which the governor
> >      control loop starts operating.  This is the first passive trip
> > diff --git a/drivers/thermal/power_allocator.c b/drivers/thermal/power_allocator.c
> > index f78836c2da26..257c9af20f22 100644
> > --- a/drivers/thermal/power_allocator.c
> > +++ b/drivers/thermal/power_allocator.c
> > @@ -24,6 +24,8 @@
> >
> >  #include "thermal_core.h"
> >
> > +#define INVALID_TRIP -1
> > +
> >  #define FRAC_BITS 10
> >  #define int_to_frac(x) ((x) << FRAC_BITS)
> >  #define frac_to_int(x) ((x) >> FRAC_BITS)
> > @@ -61,6 +63,8 @@ static inline s64 div_frac(s64 x, s64 y)
> >   *             Used to calculate the derivative term.
> >   * @trip_switch_on:    first passive trip point of the thermal zone.  The
> >   *                     governor switches on when this trip point is crossed.
> > + *                     If the thermal zone only has one passive trip point,
> > + *                     @trip_switch_on should be INVALID_TRIP.
> >   * @trip_max_desired_temperature:      last passive trip point of the thermal
> >   *                                     zone.  The temperature we are
> >   *                                     controlling for.
> > @@ -378,43 +382,66 @@ unlock:
> >         return ret;
> >  }
> >
> > -static int get_governor_trips(struct thermal_zone_device *tz,
> > -                             struct power_allocator_params *params)
> > +/**
> > + * get_governor_trips() - get the number of the two trip points that are key for this governor
> > + * @tz:        thermal zone to operate on
> > + * @params:    pointer the private data for this governor
>                   ^
>                   pointer to private data

Fixed

> > + *
> > + * The power allocator governor works optimally with two trips points:
> > + * a "switch on" trip point and a "maximum desired temperature".  These
> > + * are defined as the first and last passive trip points.
> > + *
> > + * If there is only one trip point, then that's considered to be the
> > + * "maximum desired temperature" trip point and the governor is always
> > + * on.  If there are no passive or active trip points, then the
> > + * governor won't do anything.  In fact, its throttle function
> > + * shouldn't be called at all.
>       ^
>       "shouldn't" or "won't" ?

"won't".  Sometimes I'm overly cautious.  You know "never say never" ;-)

> [snip]
> 
> >  static void power_allocator_unbind(struct thermal_zone_device *tz)
> > @@ -544,13 +561,7 @@ static int power_allocator_throttle(struct thermal_zone_device *tz, int trip)
> >
> >         ret = tz->ops->get_trip_temp(tz, params->trip_switch_on,
> >                                      &switch_on_temp);
> > -       if (ret) {
> > -               dev_warn(&tz->device,
> > -                        "Failed to get switch on temperature: %d\n", ret);
> > -               return ret;
> > -       }
> > -
> > -       if (current_temp < switch_on_temp) {
> > +       if ((!ret) && (current_temp < switch_on_temp)) {
> 
> nit: I think the inner pair of () are not necessary.

They are not necessary, but I prefer the parenthesis around the
comparison.  It makes it clearer to me.  I've dropped the () around
!ret.

Thanks for the comments here and in the first patch.
Javi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ