linux/drivers/cpuidle
Gautham R. Shenoy 054e44ba99 cpuidle: pseries: Add function to parse extended CEDE records
Currently we use CEDE with latency-hint 0 as the only other idle state
on a dedicated LPAR apart from the polling "snooze" state.

The platform might support additional extended CEDE idle states, which
can be discovered through the "ibm,get-system-parameter" rtas-call
made with CEDE_LATENCY_TOKEN.

This patch adds a function to obtain information about the extended
CEDE idle states from the platform and parse the contents to populate
an array of extended CEDE states. These idle states thus discovered
will be added to the cpuidle framework in the next patch.

dmesg on a POWER8 and POWER9 LPAR, demonstrating the output of parsing
the extended CEDE latency parameters are as follows

POWER8
[   10.093279] xcede : xcede_record_size = 10
[   10.093285] xcede : Record 0 : hint = 1, latency = 0x3c00 tb ticks, Wake-on-irq = 1
[   10.093291] xcede : Record 1 : hint = 2, latency = 0x4e2000 tb ticks, Wake-on-irq = 0
[   10.093297] cpuidle : Skipping the 2 Extended CEDE idle states

POWER9
[    5.913180] xcede : xcede_record_size = 10
[    5.913183] xcede : Record 0 : hint = 1, latency = 0x400 tb ticks, Wake-on-irq = 1
[    5.913188] xcede : Record 1 : hint = 2, latency = 0x3e8000 tb ticks, Wake-on-irq = 0
[    5.913193] cpuidle : Skipping the 2 Extended CEDE idle states

Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
[mpe: Make space for 16 records, drop memset, minor cleanup & formatting]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/1596087177-30329-3-git-send-email-ego@linux.vnet.ibm.com
2020-07-30 22:53:50 +10:00
..
governors
coupled.c
cpuidle-arm.c thermal: cpuidle: Register cpuidle cooling device 2020-05-19 12:58:07 +02:00
cpuidle-at91.c
cpuidle-big_little.c
cpuidle-calxeda.c
cpuidle-clps711x.c
cpuidle-cps.c
cpuidle-exynos.c
cpuidle-haltpoll.c cpuidle-haltpoll: Fix small typo 2020-04-08 14:35:45 +02:00
cpuidle-kirkwood.c
cpuidle-mvebu-v7.c
cpuidle-powernv.c cpuidle/powernv : Remove dead code block 2020-07-15 11:07:20 +10:00
cpuidle-psci-domain.c
cpuidle-psci.c - Add the hwmon support on the i.MX SC (Anson Huang) 2020-06-12 14:10:21 -07:00
cpuidle-psci.h
cpuidle-pseries.c cpuidle: pseries: Add function to parse extended CEDE records 2020-07-30 22:53:50 +10:00
cpuidle-qcom-spm.c cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver 2020-05-26 10:46:01 +02:00
cpuidle-tegra.c cpuidle: tegra: Support CPU cluster power-down state on Tegra30 2020-05-06 18:42:55 +02:00
cpuidle-ux500.c
cpuidle-zynq.c
cpuidle.c
cpuidle.h
driver.c
dt_idle_states.c
dt_idle_states.h
governor.c
Kconfig
Kconfig.arm cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver 2020-05-26 10:46:01 +02:00
Kconfig.mips
Kconfig.powerpc
Makefile cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver 2020-05-26 10:46:01 +02:00
poll_state.c
sysfs.c cpuidle: Fix three reference count leaks 2020-05-29 18:07:18 +02:00