On Thu, May 30, 2013 at 7:36 AM, Andy Green <andy.gr...@linaro.org> wrote: > Hi - > > We're using one kernel binary with BL Switcher enabled in config, but able > to work on SoC without Big Little. > > This is OK except where the BL patches touch the PMU driver. It makes an > assumption about BL configured == in use which is not true. PMU init fails > and when you try to use perf list later, it blows chunks. > > I worked around it with the hack below, so it can fail out from the > bigLITTLE path when it doesn't see the cluster property in DT, but there's > presumably a better way to do that which more directly checks if we care > about BL in this execution environment. > > -Andy >
This is Dave's area but Nico ought to weigh in whether the presence of the DT property is the best place for this. It seems OK to me. > > Author: Andy Green <andy.gr...@linaro.org> > Date: Thu May 30 09:44:17 2013 +0800 > > bl switcher fix dont assume bl active in pmu probe > > Signed-off-by: Andy Green <andy.gr...@linaro.org> > > diff --git a/arch/arm/kernel/perf_event_cpu.c > b/arch/arm/kernel/perf_event_cpu.c > index b3ae24f..c02ea21 100644 > --- a/arch/arm/kernel/perf_event_cpu.c > +++ b/arch/arm/kernel/perf_event_cpu.c > @@ -440,6 +440,9 @@ static int cpu_pmu_device_probe(struct platform_device > *pdev) > hwid = of_get_property(ncluster, "reg", &len); > if (hwid && len == 4) > cluster = be32_to_cpup(hwid); > + } else { > + ret = probe_current_pmu(pmu); > + goto bail; > } > /* set sibling mask to all cpu mask if socket is not > specified */ > /* > @@ -501,7 +504,7 @@ static int cpu_pmu_device_probe(struct platform_device > *pdev) > } else { > ret = probe_current_pmu(pmu); > } > - > +bail: > if (ret) > goto error; > > _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev