Re: [PATCH] cpufreq: Processor Clocking Control interface driver

From: Dominik Brodowski
Date: Wed Dec 16 2009 - 11:38:20 EST


Hey,

On Wed, Dec 16, 2009 at 03:31:48PM +0000, Chumbalkar, Nagananda wrote:
> >> >> + if (target_freq <=
> >> >(ioread32(&pcch_hdr->minimum_frequency) * 1000)) {
> >> >> + target_freq =
> >> >ioread32(&pcch_hdr->minimum_frequency) * 1000;
> >> >> + dprintk("target: target_freq for cpu %d was
> >> >below limit, "
> >> >> + "converted it to %d\n", cpu, target_freq);
> >> >> + }
> >> >
> >> >why not do this in the _verify() step? Does
> >pcch_hdr->minimum_frequency
> >> >even change "on the fly"?
> >>
> >> pcch_hdr->minimum_frequency does not change "on the fly".
> >Also, there is no
> >> need for those IO accesses:
> >
> >target_freq cannot be below policy->min or above policy->max.
> >If it were,
> >the whole cpufreq subsystem is broken. So there's no need for
> >these checks,
> >AFAICS.
> >
>
> I think the "ondemand" governor can ask for a target frequency that is
> below policy->min.
>
> Let's say that at a given snapshot, the frequency of a CPU is policy->cur.
> At the next sampling, if the "load" on the CPU drops to a level that
> satisifies the equation below, then freq_next requested by "ondemand"
> will be below policy->min:
>
> load < (threshold - differential) * policy->min / policy->cur
>
> A patch such as below may be needed to sanitize the target frequency
> requested by "ondemand". The "conservative" governor already has this check:

If freq_next < policy->min is indeed possible in ondemand, that's a real bug
in ondemand.

Best,
Dominik
--
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/