Re: [RFC PATCH 0/2] thermal: Add generic cpu cooling devicesaccording to thermal framework

From: Amit Kachhap
Date: Fri Feb 03 2012 - 07:13:47 EST


On 3 February 2012 12:42, Zhang Rui <rui.zhang@xxxxxxxxx> wrote:
> Hi, sorry for the late response.
>
> On å, 2012-01-19 at 14:47 +0530, Amit Kachhap wrote:
>> On 13 December 2011 20:43, Amit Daniel Kachhap <amit.kachhap@xxxxxxxxxx> wrote:
>> > PATCH 1) Â[thermal: Add a new trip type to use cooling device instance number]
>> > This patch adds a new trip type THERMAL_TRIP_STATE_ACTIVE which passes
>> > cooling device instance number and may be helpful for cpufreq cooling devices
>> > to take the correct cooling action.
>> >
> Sorry, I'm still not quite clear about how this will be used.
> Say, processor has P0~P3, then we need to register a thermal zone with
> three STATE_ACTIVE trip points, like the picture shown below?
>
> processor in full speed, i.e. P0
> ----------------------------
> state active trip point 1
> ----------------------------
> processor in P1
> ----------------------------
> state active trip point 2
> ----------------------------
> processor in P2
> ----------------------------
> state active trip point 3
> ----------------------------
> processor in P3
>

Thanks for the review. Your representation of the 3 PSTATES and trip
points are correct. Also remember the case that we have registered one
cpufreq cooling device and binded 3 instance of it with the 3 trip
points. So in the current patch set_cur_state will pass the instance
id also which will help in moving to the current P state.

This same behaviour is achieved through PASSIVE state but it iterates
through all the P states. so the current patch avoids the iteration
and goes to a single state directly.

>> > PATCH 2) Â[thermal: Add generic cpu cooling implementation]
>> > This patch adds generic cpu cooling low level implementation through frequency
>> > clipping and cpu hotplug. In future, other cpu related cooling devices may be
>> > added here. An ACPI version of this already exists(drivers/acpi/processor_thermal.c).
>> > But this will be useful for platforms like ARM using the generic thermal interface
>> > along with the generic cpu cooling devices. The cooling device registration API's
>> > return cooling device pointers which can be easily binded with the thermal zone
>> > trip points.
>> >
> It seems that we can convert the ACPI processor thermal driver to follow
> this generic cpu cooling implementation, right?
I am not sure if we can convert the processor thermal driver because
it performs other cpu cooling like throttling, idle etc and then ACPI
abstraction on top of it. I am thinking of exporting the generic low
level cooling implementation like this patch is doing from
processor_thermal.c file so that it can be usable with non-acpi
interface.
What is your opinion about it?

Thanks,
Amit Daniel
>
> thanks,
> rui
>>
>> Any comments on these patches? I submitted them quite long back.
>>
>> Regards,
>> Amit D
>>
>> >
>> > Amit Daniel Kachhap (2):
>> > Âthermal: Add a new trip type to use cooling device instance number
>> > Âthermal: Add generic cpu cooling implementation
>> >
>> > ÂDocumentation/thermal/cpu-cooling-api.txt | Â 52 +++++
>> > ÂDocumentation/thermal/sysfs-api.txt    |  Â4 +-
>> > Âdrivers/thermal/Kconfig          |  11 +
>> > Âdrivers/thermal/Makefile         Â|  Â1 +
>> > Âdrivers/thermal/cpu_cooling.c       | Â302 +++++++++++++++++++++++++++++
>> > Âdrivers/thermal/thermal_sys.c       |  27 +++-
>> > Âinclude/linux/cpu_cooling.h        |  45 +++++
>> > Âinclude/linux/thermal.h          |  Â1 +
>> > Â8 files changed, 440 insertions(+), 3 deletions(-)
>> > Âcreate mode 100644 Documentation/thermal/cpu-cooling-api.txt
>> > Âcreate mode 100644 drivers/thermal/cpu_cooling.c
>> > Âcreate mode 100644 include/linux/cpu_cooling.h
>> >
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/