Re: [PATCH 1/5] cpufreq: handle SW coordinated CPUs

From: Fabio Baltieri
Date: Wed Jan 30 2013 - 06:05:04 EST


On Wed, Jan 30, 2013 at 10:14:53AM +0100, Fabio Baltieri wrote:
> Hello Viresh,
>
> On Wed, Jan 30, 2013 at 12:33:40PM +0530, Viresh Kumar wrote:
> > I am starting to follow cpufreq patches religiously now and so have to come
> > back to this old thread due to some crash we got :)
> >
> > Its still not pushed upstream, so better to get it resolved before 3.9.
>
> Definitely, that's what we have -next for!
>
> > On Thu, Dec 27, 2012 at 8:25 PM, Fabio Baltieri
> > <fabio.baltieri@xxxxxxxxxx> wrote:
> >
> > > diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
> >
> > > static inline void dbs_timer_init(struct dbs_data *dbs_data,
> > > - struct cpu_dbs_common_info *cdbs, unsigned int sampling_rate)
> > > + struct cpu_dbs_common_info *cdbs,
> > > + unsigned int sampling_rate,
> > > + int cpu)
> > > {
> > > int delay = delay_for_sampling_rate(sampling_rate);
> > > + struct cpu_dbs_common_info *cdbs_local = dbs_data->get_cpu_cdbs(cpu);
> >
> > I couldn't understand the real need for this, as it should really give
> > back the same
> > pointer pointed out by: cdbs and hence no need of cpu in params too..

Small sidenote, actually what I'm going to drop here i *cdbs, as I need
cpu for schedule_delayed_work_on and can't use cdbs->cpu for that as
it's the master's one.

Fabio

> >
> > I may be wrong here :)
>
> You are actually right. This comes from the first version of the patch
> (I basically rewrote it after the common code rafactoring), and cdbs was
> meant to be always the one for the master CPU while cpu should indicate
> the one being initialized. Then the thing turned out as:
>
> A - I dropped the code specific for master cdbs here as it was already
> there on another code path following the rafactoring.
> B - I passed j_cdbs = dbs_data->get_cpu_cdbs(j) in the init cycle while
> it was really meant to be get_cpu_cdbs(cpu).
>
> > >
> > > - INIT_DEFERRABLE_WORK(&cdbs->work, dbs_data->gov_dbs_timer);
> > > - schedule_delayed_work_on(cdbs->cpu, &cdbs->work, delay);
> > > + schedule_delayed_work_on(cpu, &cdbs_local->work, delay);
> > > }

--
Fabio Baltieri
--
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/