On Fri, Mar 09, 2018 at 10:53:14AM +0000, Suzuki K Poulose wrote:
> + Cc: Lorenzo, Charles.
> 
> On 08/03/18 23:59, Saravana Kannan wrote:
> > On 01/02/2018 03:25 AM, Suzuki K Poulose wrote:
> > > Add support for the Cluster PMU part of the ARM DynamIQ Shared Unit (DSU).
> > > The DSU integrates one or more cores with an L3 memory system, control
> > > logic, and external interfaces to form a multicore cluster. The PMU
> > > allows counting the various events related to L3, SCU etc, along with
> > > providing a cycle counter.
> > > 
> > > The PMU can be accessed via system registers, which are common
> > > to the cores in the same cluster. The PMU registers follow the
> > > semantics of the ARMv8 PMU, mostly, with the exception that
> > > the counters record the cluster wide events.
> > > 
> > > This driver is mostly based on the ARMv8 and CCI PMU drivers.
> > > The driver only supports ARM64 at the moment. It can be extended
> > > to support ARM32 by providing register accessors like we do in
> > > arch/arm64/include/arm_dsu_pmu.h.
> > > 
> > > Cc: Mark Rutland <mark.rutl...@arm.com>
> > > Cc: Will Deacon <will.dea...@arm.com>
> > > Reviewed-by: Jonathan Cameron <jonathan.came...@huawei.com>
> > > Reviewed-by: Mark Rutland <mark.rutl...@arm.com>
> > > Signed-off-by: Suzuki K Poulose <suzuki.poul...@arm.com>
> 
> [...]
> 
> > 
> > Looking at the code, I didn't see any specific handling of cluster power 
> > collapse. AFAIK, the HW counters do not retain config (what event they are 
> > counting) or value (the current count) across power collapse. Wouldn't you 
> > need to register for some kind of PM_ENTER/EXIT notifiers to handle that?
> 
> Good point, yes *somebody* needs to save-restore the registers. But who ? As 
> far
> as the kernel is concerned, it doesn't control the DSU states. Also, as of now
> there is no reliable way to get the "ENTER/EXIT" notifications for the DSU 
> power
> domain state changes. All we do is use the PMU, assuming it is available. 
> AFAIT,
> it should really be done at EL3, which manages the DSU, but may be I am wrong.

Given this can happen behind the back of the kernel, if FW doesn't
save/restore this state, we'll have to inhibit cpuidle on a CPU
associated with the DSU PMU whenever it has active events, which would
keep the cluster online.

Thanks,
Mark.

Reply via email to