Re: [PATCH] ARM: cpuidle: Support asymmetric idle definition

From: Sudeep Holla
Date: Mon May 22 2017 - 09:59:22 EST




On 22/05/17 14:34, Leo Yan wrote:
> Hi Sudeep,
>
> On Mon, May 22, 2017 at 02:02:12PM +0100, Sudeep Holla wrote:
>
> [...]
>
>>>>>> On 19/05/17 17:45, Daniel Lezcano wrote:
>>>>>>> Some hardware have clusters with different idle states. The current code does
>>>>>>> not support this and fails as it expects all the idle states to be identical.
>>>>>>>
>>>>>>> Because of this, the Mediatek mtk8173 had to create the same idle state for a
>>>>>>> big.Little system and now the Hisilicon 960 is facing the same situation.
>>>>>>>
>>>>>>
>>>>>> While I agree the we don't support them today, it's better to benchmark
>>>>>> and record/compare the gain we get with the support for cluster based
>>>>>> idle states.
>>>>>
>>>>> Sorry, I don't get what you are talking about. What do you want to
>>>>> benchmark ? Cluster idling ?
>>>>>
>>>>
>>>> OK, I was not so clear. I had a brief chat with Lorenzo, we have few
>>>> reason to have this support:
>>>> 1. Different number of states between clusters
>>>> 2. Different latencies(this is the one I was referring above, generally
>>>> we keep worst case timings here and wanted to see if any platform
>>>> measured improvements with different latencies in the idle states)
>>>
>>> I don't see the point. Are you putting into question the big little design?
>>>
>>
>> Not exactly. Since they are generally worst case number, I wanted to
>> check if someone saw real benefit with 2 different set of values.
>> Anyways that's not important or blocking, just raised a point, so that
>> we can stick some benchmarking results with this.
>
> In case you are interesting for Hikey960 idle states, you could see
> the two clustsers have different idle states:
> http://termbin.com/d7ed

Probably this if off-topic, but I found CPU_NAP_0 really interesting:

1. CPU_NAP_0 has arm,psci-suspend-param as 0x00000000 which generally
not recommended to avoid conflict with WFI

2. Initially I assumed, CPU_NAP_0 is retention/standby state, but then I
see "local-timer-stop", which indicates it's power down state which
means arm,psci-suspend-param is wrong.

--
Regards,
Sudeep