From owner-freebsd-smp Wed May 1 18:41:12 2002 Delivered-To: freebsd-smp@freebsd.org Received: from web20908.mail.yahoo.com (web20908.mail.yahoo.com [216.136.226.230]) by hub.freebsd.org (Postfix) with SMTP id 92A2137B404 for ; Wed, 1 May 2002 18:41:08 -0700 (PDT) Message-ID: <20020502014108.24342.qmail@web20908.mail.yahoo.com> Received: from [218.108.155.50] by web20908.mail.yahoo.com via HTTP; Wed, 01 May 2002 18:41:08 PDT Date: Wed, 1 May 2002 18:41:08 -0700 (PDT) From: David Xu Subject: Re: hlt when idle? To: Terry Lambert , Andrew Gallatin Cc: freebsd-smp@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Andrew Gallatin wrote: > Can somebody remind me why we do not hlt in the idle loop on MP x86s? > >Halting with "giant" and/or "the scheduler lock" held is bad. > >> Is this because a HLTed CPU is not going to notice a new runnable job >> (possibly migrating from another CPU) until it gets an interrupt to >> wake it up? > >Partly. It's worse than that, if the system is relatively >quiescent. Interrupts are routed with entry to the kernel, >the system doesn't run in "virtual wire" mode, and it doesn't >support seperately routing interrupts. You can not set "virtual wire" mode when SMP is enabled otherwise every CPU will send interrupt ACK to PIC and make mess the PIC and lost other interrupts. -- David Xu __________________________________________________ Do You Yahoo!? Yahoo! Health - your guide to health and wellness http://health.yahoo.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message