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/

Reply via email to