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. 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. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/