Hence I think this patch would make sense only with additional information like exit_latency or target_residency is present for the scheduler. The idle state index alone will not be sufficient.
Alternatively, can we enforce sanity on the cpuidle infrastructure to make the index naturally ordered? If not, please explain why :-)
The commit id 71abbbf856a0e70 says that there are SOCs which could have their target_residency and exit_latency values change at runtime. This commit thus removed the ordering of the idle states according to their target_residency/exit_latency. Adding Len and Arjan to the CC.
the ARM folks wanted a dynamic exit latency, so.... it makes much more sense to me to store the thing you want to use (exit latency) than the number of the state.
more than that, you can order either by target residency OR by exit latency, if you sort by one, there is no guarantee that you're also sorted by the other
(for example, you can on a hardware level make a "fast exit" state, and burn power for this faster exit, which means your break even gets longer to recoup this extra power compared to the same state without the fast exit)