Re: 2.6.8-rc3-mm2

Ingo Molnar
2004-08-10T08:50:54Z

* William Lee Irwin III <wli@holomorphy.com> wrote:

> On Mon, Aug 09, 2004 at 03:45:46PM -0700, William Lee Irwin III wrote:
> > Adding mdelay(1000) before and after the wakeup IPI didn't help. Must
> > be something else going on in printk().
>
> None of the printk()'s in do_boot_cpu() appear essential. The
> following also boots:

the key seems to be not doing fork_idle() call via keventd?

i'm wondering about:

> - if (!keventd_up() || current_is_keventd())
> - work.func(work.data);
> - else {
> - schedule_work(&work);
> - wait_for_completion(&c_idle.done);
> - }

is keventd_up() true during normal SMP bootup? If not then could you do
something like this in do_fork_idle():

if (keventd_up())
complete(&c_idle->done);

since we are in the idle thread and waking up ourselves could move us
back to the runqueue. (bad)

Ingo