cpu_idle() is called by machine-independent code when the processor has nothing to do. It can be used to conserve the processor power, for example.
cpu_idle() returns immediately if
cpu_need_resched() has been called for the processor after the last call of
cpu_idle() or
cpu_did_resched() on the processor.
cpu_idle() returns as soon as possible when
cpu_need_resched() is called for the processor. Otherwise, it returns whenever it likes.
cpu_idle() is called at
IPL_NONE, without any locks held.