[haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Stephan Assmus <superstippi@xxxxxx>
- To: haiku-appserver@xxxxxxxxxxxxx
- Date: Tue, 13 Dec 2005 01:11:25 +0100
On 2005-12-13 at 00:46:51 [+0100], Ingo Weinhold <bonefish@xxxxxxxxxxxxxxx>
wrote:
>
> On 2005-12-13 at 00:33:10 [+0100], Stephan Assmus <superstippi@xxxxxx>
> wrote:
> > On 2005-12-13 at 00:26:58 [+0100], Ingo Weinhold
> > <bonefish@xxxxxxxxxxxxxxx>
> > wrote:
> > > On 2005-12-12 at 23:52:06 [+0100], Stephan Assmus <superstippi@xxxxxx>
> > > wrote:
> > > > > > Or, is it already in there and can I somehow enable it?
> > > > >
> > > > > From src/system/kernel/arch/x86/arch_cpu.c:
> > > > >
> > > > > void
> > > > > arch_cpu_idle(void)
> > > > > {
> > > > > switch (smp_get_num_cpus()) {
> > > > > case 0:
> > > > > panic("You need at least 1 CPU to run Haiku\n");
> > > > > case 1:
> > > > > asm("hlt");
> > > > > default:
> > > > > break;
> > > > > }
> > > > > }
> > > > >
> > > > > So, if you have more than one CPU, the only thing you can do is
> > > > > change
> > > > > this
> > > > > code. There might be a reason, why it is implemented like it is,
> > > > > though.
> > > > > On
> > > > > the other hand there's also no comment that you computer will
> > > > > explode
> > > > > when
> > > > > executing "hlt" on a multi CPU machine either...
> > > >
> > > > I seem to recall that on my dual CPU machine, there is simply two idle
> > > > threads running. Or is my memory failing me?
> > >
> > > No. The question was, what the idle threads are executing, though. And
> > > that's
> > > the above function (in an endless loop).
> >
> > Yeah, but why would a person with more than one CPU have to change that
> > code,
> > if the real fix is making sure that there is simply as many idle threads
> > as
> > CPUs? (Somewhere else form this code.) Or am I totally confused?
>
> Yep, you're totally confused. ;-)
> There are as many idle threads as there are CPUs. Each of which executing
> the
> above function in a endless loop. The real fix is to change the above code
> to
> also execute "hlt" when there's more than one CPU. The only suspicious thing
> is why this hadn't been done in the first place.
Ah!! Now I understand. Thanks. Doh.
Best regards,
-Stephan
- References:
- [haiku-appserver] CPU-idle-loop and HALT instruction?
- From: Rudolf
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Ingo Weinhold
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Stephan Assmus
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Ingo Weinhold
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Stephan Assmus
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Ingo Weinhold
Other related posts:
- » [haiku-appserver] CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- » [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- [haiku-appserver] CPU-idle-loop and HALT instruction?
- From: Rudolf
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Ingo Weinhold
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Stephan Assmus
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Ingo Weinhold
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Stephan Assmus
- [haiku-appserver] Re: CPU-idle-loop and HALT instruction?
- From: Ingo Weinhold