Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
Hi Javi, Javi Merino writes: On Tue, Oct 28, 2014 at 07:33:39PM +, Peter Feuerer wrote: Hi Rui, I wonder whether you've had time to apply my set of patches already? Would you please be so kind to just send me a short reply? The bang-bang governor was merged and is part of v3.18-rc2: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8264fce6de03f3915e2301f52f181a982718a8cb Thanks for your mail. Seems like the other 5 patches of the series were not applied. So I need to take care again, or? kind regards, --peter; Cheers, Javi Peter Feuerer writes: > Hi Rui, > > Zhang Rui writes: > >> On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: >>> Hi Rui, >>> >>> Peter Feuerer writes: >>> >>> > The bang-bang thermal governor uses a hysteresis to switch abruptly on >>> > or off a cooling device. It is intended to control fans, which can >>> > not be throttled but just switched on or off. >>> > Bang-bang cannot be set as default governor as it is intended for >>> > special devices only. For those special devices the driver needs to >>> > explicitely request it. >>> > >>> > Cc: Andrew Morton >>> > Cc: Zhang Rui >>> >>> Anything that prevents you from giving your acked-by? >>> >> NO. >> >> I'll queue them for 3.18. > > Are all 6 patches in for 3.18 as you promissed? > > kind regards, > --peter; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
On Tue, Oct 28, 2014 at 07:33:39PM +, Peter Feuerer wrote: > Hi Rui, > > I wonder whether you've had time to apply my set of patches already? Would > you please be so kind to just send me a short reply? The bang-bang governor was merged and is part of v3.18-rc2: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8264fce6de03f3915e2301f52f181a982718a8cb Cheers, Javi > Peter Feuerer writes: > > > Hi Rui, > > > > Zhang Rui writes: > > > >> On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: > >>> Hi Rui, > >>> > >>> Peter Feuerer writes: > >>> > >>> > The bang-bang thermal governor uses a hysteresis to switch abruptly on > >>> > or off a cooling device. It is intended to control fans, which can > >>> > not be throttled but just switched on or off. > >>> > Bang-bang cannot be set as default governor as it is intended for > >>> > special devices only. For those special devices the driver needs to > >>> > explicitely request it. > >>> > > >>> > Cc: Andrew Morton > >>> > Cc: Zhang Rui > >>> > >>> Anything that prevents you from giving your acked-by? > >>> > >> NO. > >> > >> I'll queue them for 3.18. > > > > Are all 6 patches in for 3.18 as you promissed? > > > > kind regards, > > --peter; > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
On Tue, Oct 28, 2014 at 07:33:39PM +, Peter Feuerer wrote: Hi Rui, I wonder whether you've had time to apply my set of patches already? Would you please be so kind to just send me a short reply? The bang-bang governor was merged and is part of v3.18-rc2: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8264fce6de03f3915e2301f52f181a982718a8cb Cheers, Javi Peter Feuerer writes: Hi Rui, Zhang Rui writes: On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: Hi Rui, Peter Feuerer writes: The bang-bang thermal governor uses a hysteresis to switch abruptly on or off a cooling device. It is intended to control fans, which can not be throttled but just switched on or off. Bang-bang cannot be set as default governor as it is intended for special devices only. For those special devices the driver needs to explicitely request it. Cc: Andrew Morton a...@linux-foundation.org Cc: Zhang Rui rui.zh...@intel.com Anything that prevents you from giving your acked-by? NO. I'll queue them for 3.18. Are all 6 patches in for 3.18 as you promissed? kind regards, --peter; -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
Hi Javi, Javi Merino writes: On Tue, Oct 28, 2014 at 07:33:39PM +, Peter Feuerer wrote: Hi Rui, I wonder whether you've had time to apply my set of patches already? Would you please be so kind to just send me a short reply? The bang-bang governor was merged and is part of v3.18-rc2: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8264fce6de03f3915e2301f52f181a982718a8cb Thanks for your mail. Seems like the other 5 patches of the series were not applied. So I need to take care again, or? kind regards, --peter; Cheers, Javi Peter Feuerer writes: Hi Rui, Zhang Rui writes: On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: Hi Rui, Peter Feuerer writes: The bang-bang thermal governor uses a hysteresis to switch abruptly on or off a cooling device. It is intended to control fans, which can not be throttled but just switched on or off. Bang-bang cannot be set as default governor as it is intended for special devices only. For those special devices the driver needs to explicitely request it. Cc: Andrew Morton a...@linux-foundation.org Cc: Zhang Rui rui.zh...@intel.com Anything that prevents you from giving your acked-by? NO. I'll queue them for 3.18. Are all 6 patches in for 3.18 as you promissed? kind regards, --peter; -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
Hi Rui, I wonder whether you've had time to apply my set of patches already? Would you please be so kind to just send me a short reply? thanks and kind regards, --peter; Peter Feuerer writes: Hi Rui, Zhang Rui writes: On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: Hi Rui, Peter Feuerer writes: > The bang-bang thermal governor uses a hysteresis to switch abruptly on > or off a cooling device. It is intended to control fans, which can > not be throttled but just switched on or off. > Bang-bang cannot be set as default governor as it is intended for > special devices only. For those special devices the driver needs to > explicitely request it. > > Cc: Andrew Morton > Cc: Zhang Rui Anything that prevents you from giving your acked-by? NO. I'll queue them for 3.18. Are all 6 patches in for 3.18 as you promissed? kind regards, --peter; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
Hi Rui, I wonder whether you've had time to apply my set of patches already? Would you please be so kind to just send me a short reply? thanks and kind regards, --peter; Peter Feuerer writes: Hi Rui, Zhang Rui writes: On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: Hi Rui, Peter Feuerer writes: The bang-bang thermal governor uses a hysteresis to switch abruptly on or off a cooling device. It is intended to control fans, which can not be throttled but just switched on or off. Bang-bang cannot be set as default governor as it is intended for special devices only. For those special devices the driver needs to explicitely request it. Cc: Andrew Morton a...@linux-foundation.org Cc: Zhang Rui rui.zh...@intel.com Anything that prevents you from giving your acked-by? NO. I'll queue them for 3.18. Are all 6 patches in for 3.18 as you promissed? kind regards, --peter; -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
Hi Rui, Zhang Rui writes: On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: Hi Rui, Peter Feuerer writes: > The bang-bang thermal governor uses a hysteresis to switch abruptly on > or off a cooling device. It is intended to control fans, which can > not be throttled but just switched on or off. > Bang-bang cannot be set as default governor as it is intended for > special devices only. For those special devices the driver needs to > explicitely request it. > > Cc: Andrew Morton > Cc: Zhang Rui Anything that prevents you from giving your acked-by? NO. I'll queue them for 3.18. Are all 6 patches in for 3.18 as you promissed? kind regards, --peter; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
Hi Rui, Zhang Rui writes: On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: Hi Rui, Peter Feuerer writes: The bang-bang thermal governor uses a hysteresis to switch abruptly on or off a cooling device. It is intended to control fans, which can not be throttled but just switched on or off. Bang-bang cannot be set as default governor as it is intended for special devices only. For those special devices the driver needs to explicitely request it. Cc: Andrew Morton a...@linux-foundation.org Cc: Zhang Rui rui.zh...@intel.com Anything that prevents you from giving your acked-by? NO. I'll queue them for 3.18. Are all 6 patches in for 3.18 as you promissed? kind regards, --peter; -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: > Hi Rui, > > Peter Feuerer writes: > > > The bang-bang thermal governor uses a hysteresis to switch abruptly on > > or off a cooling device. It is intended to control fans, which can > > not be throttled but just switched on or off. > > Bang-bang cannot be set as default governor as it is intended for > > special devices only. For those special devices the driver needs to > > explicitely request it. > > > > Cc: Andrew Morton > > Cc: Zhang Rui > > Anything that prevents you from giving your acked-by? > NO. I'll queue them for 3.18. thanks, rui -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
On Sat, 2014-07-26 at 16:14 +0200, Peter Feuerer wrote: Hi Rui, Peter Feuerer writes: The bang-bang thermal governor uses a hysteresis to switch abruptly on or off a cooling device. It is intended to control fans, which can not be throttled but just switched on or off. Bang-bang cannot be set as default governor as it is intended for special devices only. For those special devices the driver needs to explicitely request it. Cc: Andrew Morton a...@linux-foundation.org Cc: Zhang Rui rui.zh...@intel.com Anything that prevents you from giving your acked-by? NO. I'll queue them for 3.18. thanks, rui -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
Hi Rui, Peter Feuerer writes: The bang-bang thermal governor uses a hysteresis to switch abruptly on or off a cooling device. It is intended to control fans, which can not be throttled but just switched on or off. Bang-bang cannot be set as default governor as it is intended for special devices only. For those special devices the driver needs to explicitely request it. Cc: Andrew Morton Cc: Zhang Rui Anything that prevents you from giving your acked-by? [...] -- kind regards, --peter; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5 3/6] thermal: Added Bang-bang thermal governor
Hi Rui, Peter Feuerer writes: The bang-bang thermal governor uses a hysteresis to switch abruptly on or off a cooling device. It is intended to control fans, which can not be throttled but just switched on or off. Bang-bang cannot be set as default governor as it is intended for special devices only. For those special devices the driver needs to explicitely request it. Cc: Andrew Morton a...@linux-foundation.org Cc: Zhang Rui rui.zh...@intel.com Anything that prevents you from giving your acked-by? [...] -- kind regards, --peter; -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH v5 3/6] thermal: Added Bang-bang thermal governor
The bang-bang thermal governor uses a hysteresis to switch abruptly on or off a cooling device. It is intended to control fans, which can not be throttled but just switched on or off. Bang-bang cannot be set as default governor as it is intended for special devices only. For those special devices the driver needs to explicitely request it. Cc: Andrew Morton Cc: Zhang Rui Cc: Andreas Mohr Cc: Borislav Petkov Cc: Javi Merino Cc: linux...@vger.kernel.org Signed-off-by: Peter Feuerer --- drivers/thermal/Kconfig | 10 +++ drivers/thermal/Makefile| 1 + drivers/thermal/gov_bang_bang.c | 131 drivers/thermal/thermal_core.c | 5 ++ drivers/thermal/thermal_core.h | 8 +++ 5 files changed, 155 insertions(+) create mode 100644 drivers/thermal/gov_bang_bang.c diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig index f9a1386..fa14d56 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -84,6 +84,16 @@ config THERMAL_GOV_STEP_WISE Enable this to manage platform thermals using a simple linear governor. +config THERMAL_GOV_BANG_BANG + bool "Bang Bang thermal governor" + default n + help + Enable this to manage platform thermals using bang bang governor. + + Say 'Y' here if you want to use two point temperature regulation + used for fans without throttling. Some fan drivers depend on this + governor to be enabled (e.g. acerhdf). + config THERMAL_GOV_USER_SPACE bool "User_space thermal governor" help diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile index de0636a..a675980 100644 --- a/drivers/thermal/Makefile +++ b/drivers/thermal/Makefile @@ -11,6 +11,7 @@ thermal_sys-$(CONFIG_THERMAL_OF) += of-thermal.o # governors thermal_sys-$(CONFIG_THERMAL_GOV_FAIR_SHARE) += fair_share.o +thermal_sys-$(CONFIG_THERMAL_GOV_BANG_BANG)+= gov_bang_bang.o thermal_sys-$(CONFIG_THERMAL_GOV_STEP_WISE)+= step_wise.o thermal_sys-$(CONFIG_THERMAL_GOV_USER_SPACE) += user_space.o diff --git a/drivers/thermal/gov_bang_bang.c b/drivers/thermal/gov_bang_bang.c new file mode 100644 index 000..c5dd76b --- /dev/null +++ b/drivers/thermal/gov_bang_bang.c @@ -0,0 +1,131 @@ +/* + * gov_bang_bang.c - A simple thermal throttling governor using hysteresis + * + * Copyright (C) 2014 Peter Feuerer + * + * Based on step_wise.c with following Copyrights: + * Copyright (C) 2012 Intel Corp + * Copyright (C) 2012 Durgadoss R + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See + * the GNU General Public License for more details. + * + */ + +#include + +#include "thermal_core.h" + +static void thermal_zone_trip_update(struct thermal_zone_device *tz, int trip) +{ + long trip_temp; + unsigned long trip_hyst; + struct thermal_instance *instance; + + tz->ops->get_trip_temp(tz, trip, _temp); + tz->ops->get_trip_hyst(tz, trip, _hyst); + + dev_dbg(>device, "Trip%d[temp=%ld]:temp=%d:hyst=%ld\n", + trip, trip_temp, tz->temperature, + trip_hyst); + + mutex_lock(>lock); + + list_for_each_entry(instance, >thermal_instances, tz_node) { + if (instance->trip != trip) + continue; + + /* in case fan is in initial state, switch the fan off */ + if (instance->target == THERMAL_NO_TARGET) + instance->target = 0; + + /* in case fan is neither on nor off set the fan to active */ + if (instance->target != 0 && instance->target != 1) { + pr_warn("Thermal instance %s controlled by bang-bang has unexpected state: %ld\n", + instance->name, instance->target); + instance->target = 1; + } + + /* +* enable fan when temperature exceeds trip_temp and disable +* the fan in case it falls below trip_temp minus hysteresis +*/ + if (instance->target == 0 && tz->temperature >= trip_temp) + instance->target = 1; + else if (instance->target == 1 && + tz->temperature < trip_temp - trip_hyst) + instance->target = 0; + + dev_dbg(>cdev->device, "target=%d\n", + (int)instance->target); + + instance->cdev->updated = false; /* cdev needs update */ + } + +
[PATCH v5 3/6] thermal: Added Bang-bang thermal governor
The bang-bang thermal governor uses a hysteresis to switch abruptly on or off a cooling device. It is intended to control fans, which can not be throttled but just switched on or off. Bang-bang cannot be set as default governor as it is intended for special devices only. For those special devices the driver needs to explicitely request it. Cc: Andrew Morton a...@linux-foundation.org Cc: Zhang Rui rui.zh...@intel.com Cc: Andreas Mohr a...@lisas.de Cc: Borislav Petkov b...@suse.de Cc: Javi Merino javi.mer...@arm.com Cc: linux...@vger.kernel.org Signed-off-by: Peter Feuerer pe...@piie.net --- drivers/thermal/Kconfig | 10 +++ drivers/thermal/Makefile| 1 + drivers/thermal/gov_bang_bang.c | 131 drivers/thermal/thermal_core.c | 5 ++ drivers/thermal/thermal_core.h | 8 +++ 5 files changed, 155 insertions(+) create mode 100644 drivers/thermal/gov_bang_bang.c diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig index f9a1386..fa14d56 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -84,6 +84,16 @@ config THERMAL_GOV_STEP_WISE Enable this to manage platform thermals using a simple linear governor. +config THERMAL_GOV_BANG_BANG + bool Bang Bang thermal governor + default n + help + Enable this to manage platform thermals using bang bang governor. + + Say 'Y' here if you want to use two point temperature regulation + used for fans without throttling. Some fan drivers depend on this + governor to be enabled (e.g. acerhdf). + config THERMAL_GOV_USER_SPACE bool User_space thermal governor help diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile index de0636a..a675980 100644 --- a/drivers/thermal/Makefile +++ b/drivers/thermal/Makefile @@ -11,6 +11,7 @@ thermal_sys-$(CONFIG_THERMAL_OF) += of-thermal.o # governors thermal_sys-$(CONFIG_THERMAL_GOV_FAIR_SHARE) += fair_share.o +thermal_sys-$(CONFIG_THERMAL_GOV_BANG_BANG)+= gov_bang_bang.o thermal_sys-$(CONFIG_THERMAL_GOV_STEP_WISE)+= step_wise.o thermal_sys-$(CONFIG_THERMAL_GOV_USER_SPACE) += user_space.o diff --git a/drivers/thermal/gov_bang_bang.c b/drivers/thermal/gov_bang_bang.c new file mode 100644 index 000..c5dd76b --- /dev/null +++ b/drivers/thermal/gov_bang_bang.c @@ -0,0 +1,131 @@ +/* + * gov_bang_bang.c - A simple thermal throttling governor using hysteresis + * + * Copyright (C) 2014 Peter Feuerer pe...@piie.net + * + * Based on step_wise.c with following Copyrights: + * Copyright (C) 2012 Intel Corp + * Copyright (C) 2012 Durgadoss R durgados...@intel.com + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See + * the GNU General Public License for more details. + * + */ + +#include linux/thermal.h + +#include thermal_core.h + +static void thermal_zone_trip_update(struct thermal_zone_device *tz, int trip) +{ + long trip_temp; + unsigned long trip_hyst; + struct thermal_instance *instance; + + tz-ops-get_trip_temp(tz, trip, trip_temp); + tz-ops-get_trip_hyst(tz, trip, trip_hyst); + + dev_dbg(tz-device, Trip%d[temp=%ld]:temp=%d:hyst=%ld\n, + trip, trip_temp, tz-temperature, + trip_hyst); + + mutex_lock(tz-lock); + + list_for_each_entry(instance, tz-thermal_instances, tz_node) { + if (instance-trip != trip) + continue; + + /* in case fan is in initial state, switch the fan off */ + if (instance-target == THERMAL_NO_TARGET) + instance-target = 0; + + /* in case fan is neither on nor off set the fan to active */ + if (instance-target != 0 instance-target != 1) { + pr_warn(Thermal instance %s controlled by bang-bang has unexpected state: %ld\n, + instance-name, instance-target); + instance-target = 1; + } + + /* +* enable fan when temperature exceeds trip_temp and disable +* the fan in case it falls below trip_temp minus hysteresis +*/ + if (instance-target == 0 tz-temperature = trip_temp) + instance-target = 1; + else if (instance-target == 1 + tz-temperature trip_temp - trip_hyst) + instance-target = 0; + + dev_dbg(instance-cdev-device, target=%d\n, +