On 02/24/2014 03:59 PM, Peter Zijlstra wrote:
On Mon, Feb 24, 2014 at 02:55:50PM +0100, Daniel Lezcano wrote:@@ -136,25 +155,8 @@ static void cpu_idle_loop(void) local_irq_disable(); arch_cpu_idle_enter();- /* - * In poll mode we reenable interrupts and spin. - * - * Also if we detected in the wakeup from idle - * path that the tick broadcast device expired - * for us, we don't want to go deep idle as we - * know that the IPI is going to arrive right - * away - */ - if (cpu_idle_force_poll || tick_check_broadcast_expired()) { - cpu_idle_poll(); - } else { - if (!current_clr_polling_and_test()) { - cpuidle_idle_call(); - } else { - local_irq_enable(); - } - __current_set_polling(); - } + cpuidle_idle_call(); +Yeah, not liking that much; you can make it look like: if (cpu_idle_force_poll || tick_check_broadcast_expired()) cpu_idle_poll(); else cpu_idle_call(); Though. That keeps the polling case separate from the actual idle function.
Yes, you are right, it looks better.
And when you do that; you can also push down the current_clr_polling_and_test() muck so it doesn't cover the actual cpuidle policy code.
I am not getting it. Where do you suggest to move it ? -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

