powerpc/sysfs: Show idle_purr and idle_spurr for every CPU
authorGautham R. Shenoy <ego@linux.vnet.ibm.com>
Tue, 7 Apr 2020 08:47:42 +0000 (14:17 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 30 Apr 2020 02:35:26 +0000 (12:35 +1000)
commit6909f179ca7a73f243dca7c829facca1cc1d4ff5
tree2a2be960224d06c670e4c3b2d86d669ce1a9ee6e
parentdc8afce5f45b099e3ea52a16b2f90e92f90f3af0
powerpc/sysfs: Show idle_purr and idle_spurr for every CPU

On Pseries LPARs, to calculate utilization, we need to know the
[S]PURR ticks when the CPUs were busy or idle.

The total PURR and SPURR ticks are already exposed via the per-cpu
sysfs files "purr" and "spurr". This patch adds support for exposing
the idle PURR and SPURR ticks via new per-cpu sysfs files named
"idle_purr" and "idle_spurr".

This patch also adds helper functions to accurately read the values of
idle_purr and idle_spurr especially from an interrupt context between
when the interrupt has occurred between the pseries_idle_prolog() and
pseries_idle_epilog(). This will ensure that the idle purr/spurr
values corresponding to the latest idle period is accounted for before
these values are read.

Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/1586249263-14048-5-git-send-email-ego@linux.vnet.ibm.com
arch/powerpc/include/asm/idle.h
arch/powerpc/kernel/sysfs.c