On 08/07/2013 06:37 PM, Rafael J. Wysocki wrote: > On Wednesday, August 07, 2013 02:38:55 PM Mark Langsdorf wrote: >> Is there an easy way to dynamically limit the maximum or minimum >> frequencies available to a governor? I'm trying to support frequency >> throttling in response to a thermal event (or theoretically to allow a >> BMC to set a minimum frequency regardless of current load). >> >> I looked into doing this last year and it required some QoS patches that >> I don't think ever made it into the kernel. >> >> Is there a straightforward way to do this right now? > > Have you looked at drivers/thermal/cpu_cooling.c ? Yes, and I'm not sure how to use it get what I want. I have a mailbox interrupt on my system that will trigger with a message when the BMC monitoring the thermal sensor notices that the temperature passes a trip point; the message will include the new maximum frequency. I want to pass that new maximum frequency to the cpufreq governor so it can reassess the current frequency against the maximum and lower it if need be. I don't know in advance what the trip points or maximum frequencies are; the BMC managing the thermal sensor has that information but doesn't provide it to Linux. The most appealing solution would be to just copy cpufreq_apply_cooling() and cpufreq_thermal_modifier() from drivers/thermal/cpu_cooling.c in the highbank_cpufreq.c driver, as they're the core logic of what I need. I don't know if that would be acceptable, though. I've looked at setting up a full thermal_zone solution, and its more than I need without actually giving me a good way to set the frequencies when I need to. --Mark Langsdorf Calxeda, Inc. -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html