[Adding Peter Zijlstra to the thread]
Ah, yes of course! That makes sense. So I have to admit I am fairly
ignorant of the ACPI C-state stuff, so I just read up on it. In the
context of what you said, it makes perfect sense to me now.
IIUC, the OS selects which C-state it will enter at idle points based on
some internal criteria (TBD). All we have to do is remap the cpupri
"IDLE" state to something like IDLE-C1, IDLE-C2, ..., IDLE-Cn and have
the cpupri map get updated coincident with the pm_idle() call. Then the
scheduler will naturally favor cores that are in lighter sleep over
cores in deep sleep.
I am not sure if this is exactly what you were getting at during the
conf, since it doesnt really consider deep-sleep latency times
directly. But I think this is a step in the right direction.
-Greg