Re: [patch V2 35/67] arm/perf: Convert to hotplug state machine

From: Mark Rutland
Date: Fri Jul 15 2016 - 12:17:12 EST


On Fri, Jul 15, 2016 at 05:26:30PM +0200, Sebastian Andrzej Siewior wrote:
> * Mark Rutland | 2016-07-15 14:08:18 [+0100]:
>
> >Hi,
> Hi Mark,
>
> >We may have multiple PMUs (e.g. two in big.LITTLE systems), and
> >__oprofile_cpu_pmu only contains one of these. So this conversion is not
> >correct.
> >
> >We were relying on the notifier list implicitly containing a list of
> >those PMUs. It seems like we need an explicit list here.
> >
> >We keep __oprofile_cpu_pmu around for legacy 32-bit users of OProfile
> >(on non-hetereogeneous systems), and that's all that the variable should
> >be used for.
>
> By the time I'e been looking there was only one node in the .dts. Now
> you say it is not only possible but likely to have more than one node.

Yes. For example, arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts is a
big.LITTLE system with a Cortex-A7 PMU and a Cortex-A15 PMU.

> So what we need is a list which gets extended in cpu_pmu_init() instead
> of using the global pointer we have now. Correct?

Yes, that sounds right to me, with matching removal in cpu_pmu_destroy.

Thanks,
Mark.