Re: [patch] improve SMP reschedule and idle routines

From: Nick Piggin
Date: Mon May 16 2005 - 17:54:44 EST


Oleg Nesterov wrote:
Nick Piggin wrote:

void default_idle(void)
{
+ local_irq_enable();
+


Stupid question. Why is this sti() needed?

Interrupts are enabled in start_secondary() before cpu_idle()
call, and they can't be disabled after return from schedule().

The same question applies to poll_idle/mwait_idle.


IIRC I tried to do that, but I think I ran into problems with
acpi_processor_idle which looks like it can call the cpu idle
routines with interrupts disabled. I definitely ran into problems
with something.

That should really be cleaned up though (whether we go one way
or the other doesn't matter as much as it being consistent),
I think.

But I wanted to try to keep this patch to a minimum.

--
SUSE Labs, Novell Inc.

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