[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140130180659.GI5002@laptop.programming.kicks-ass.net>
Date: Thu, 30 Jan 2014 19:06:59 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Daniel Lezcano <daniel.lezcano@...aro.org>
Cc: Nicolas Pitre <nicolas.pitre@...aro.org>,
Preeti U Murthy <preeti@...ux.vnet.ibm.com>,
Olof Johansson <olof@...om.net>,
Russell King <linux@....linux.org.uk>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mundt <lethal@...ux-sh.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
linaro-kernel@...ts.linaro.org, linux-pm@...r.kernel.org,
linux-sh@...r.kernel.org, linux-kernel@...r.kernel.org,
linuxppc-dev@...ts.ozlabs.org, linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v2 1/6] idle: move the cpuidle entry point to the generic
idle loop
On Thu, Jan 30, 2014 at 06:28:52PM +0100, Daniel Lezcano wrote:
> Ok, I think the mess is coming from 'default_idle' which does not re-enable
> the local_irq but used from different places like amd_e400_idle and
> apm_cpu_idle.
>
> void default_idle(void)
> {
> trace_cpu_idle_rcuidle(1, smp_processor_id());
> safe_halt();
> trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
> }
>
> Considering the system configured without cpuidle because this one *always*
> enable the local irq, we have the different cases:
>
> x86_idle = default_idle();
> ==> local_irq_enable is missing
>
safe_halt() is "sti; hlt" and so very much does the irq_enable.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists