On Mon, Nov 10, 2014 at 04:12:47PM +0100, Daniel Lezcano wrote:
All this is to remove the poll idle state from the x86 cpuidle driver in order to remove the CPUIDLE_DRIVER_STATE_START (this one forces to write always ugly code in the cpuidle framework).
This poll state introduces the CPUIDLE_DRIVER_STATE_START macro. If you look at the different governors and the code, you can checkout what kind of tricks this macro introduces and how that makes the code ugly.
For the sake of what ? Just a small optimization in the menu governor.
I suppose that has been introduce and then evolved on a wrong basis. So now we have to deal with that.
This patchset provides a first round of cleanup around the poll function, the next patchset will move the 5us timer optimization from the menu governor and the last patchset will remove the CPUIDLE_DRIVER_STATE_START ugly macro.
I don't get it, I've clearly not stared at it long enough, but why is that STATE_START crap needed anywhere?
To me it appears 'natural' to have a latency_req==0 state, why does it need so much special casing?