[Skiboot] [PATCH 0/5] Support for POWER ISA v3 idle states

Shreyas B Prabhu shreyas at linux.vnet.ibm.com
Tue May 3 16:23:59 AEST 2016



On 05/03/2016 11:21 AM, Michael Neuling wrote:
> On Thu, 2016-04-21 at 19:17 +0530, Shreyas B. Prabhu wrote:
>> POWER ISA v3 defines a new idle processor core mechanism. In summary,
>>  a) new instruction named stop is added. This instruction replaces
>> 	instructions like nap, sleep, rvwinkle.
>>  b) new per thread SPR named PSSCR is added which controls the behavior
>> 	of stop instruction. 
>> 		
>> This patch series adds support for the new idle states and also has
>> some minor cleanups.
>>
>> Shreyas B. Prabhu (5):
>>   slw: Simplify if-condition while adding idle states to device tree
>>   slw: Change variable name can_winkle to has_slw
>>   slw: Add Power9 idle states to power-mgt dt node
>>   slw: Move IDLE_TB_STOP and IDLE_LOSE_FULL_CONTEXT to opal-api.h
>>   slw: Allow adding idle states to power-mgt node in mambo
>>
>>  core/chip.c        |   3 +-
>>  hw/slw.c           | 210 ++++++++++++++++++++++++++++++++++++++++-------------
>>  include/chip.h     |   1 -
>>  include/opal-api.h |  17 ++++-
> 
> The linux code for this seems to depend on a bunch of pstate properties in
> the device tree which should be created by skiboot.
> 
> In Skiboot, these are added in cpu_pstate_properties() which is called
> in occ_pstates_init(), but occ_pstates_init() has a check at the top which
> is:
> 
> void occ_pstates_init(void)
> {
> <snip>
> 	/* OCC is P8 only */
> 	if (proc_gen != proc_gen_p8)
> 		return;
> 
> This patch series doesn't seem to be updating this check, hence we get no
> new device tree properties and the linux code doesn't seem to do much. I
> get this in dmesg:
> 
> powernv-cpufreq: ibm,pstate-min node not found
> powernv-cpufreq: Platform driver disabled. System does not support PState control
> 
> How are you testing this?
> 
Cpuidle subsystem in linux kernel relies on ibm,cpu-idle-state-* device
tree nodes and this patch series takes care of them. These patches are
sufficient for testing P9 cpuidle.

occ_pstates_init() which adds ibm,pstate-* nodes are used by the cpufreq
subsystem. Expect a separate patch series adding P9 support for pstates.

Thanks,
Shreyas



More information about the Skiboot mailing list