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 cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html