On 19 March 2014 15:20, Srivatsa S. Bhat <srivatsa.bhat@xxxxxxxxxxxxxxxxxx> wrote: > No, its not about burden. Its about the elegance of the design. We should > not be overly "smart" in the cpufreq core. Hiding the synchronization inside > the cpufreq core only encourages people to write buggy code in their drivers. What kind of buggy code can be there? They are supposed to call notifiers in the order mentioned and so it shouldn't be a problem at all.. Don't know.. > Why don't we go with what Rafael suggested? We can have dedicated > begin_transition() and end_transition() calls to demarcate the frequency > transitions. That way, it makes it very clear how the synchronization is > done. Of course, these functions would be provided (exported) by the cpufreq > core, by implementing them using locks/counters/whatever. > > Basically what I'm arguing against, is the idea of having the cpufreq > core figure out what the driver _intended_ to do, from inside the > cpufreq_notify_transition() call. > > What I would prefer instead is to have the cpufreq driver do something > like this: > > cpufreq_freq_transition_begin(); > > cpufreq_notify_transition(CPUFREQ_PRECHANGE); Why do we need two routines then? What about doing notification from inside cpufreq_freq_transition_begin()? This is a burden for driver writers, who don't normally understand the relevance of these calls in detail and may think, only the first one is enough or the second one is.. Its better if they simply let the core that they are starting to do transitions, i.e. cpufreq_freq_transition_begin() and then the core should send notifications. > //perform the frequency change > > cpufreq_notify_transition(CPUFREQ_POSTCHANGE); > > cpufreq_freq_transition_end(); > > [ASYNC_NOTIFICATION drivers will invoke the last two functions in a > separate context/thread.] Same for the last two routines and yes they would be called from separate thread for ASYNC_NOTIFICATION drivers.. -- 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