From owner-freebsd-smp Thu Apr 27 10:31:59 2000 Delivered-To: freebsd-smp@freebsd.org Received: from mail.rdc1.sdca.home.com (ha2.rdc1.sdca.home.com [24.0.3.67]) by hub.freebsd.org (Postfix) with ESMTP id 96A2637BF88 for ; Thu, 27 Apr 2000 10:31:52 -0700 (PDT) (envelope-from jgowdy@home.com) Received: from cx443070a ([24.4.93.90]) by mail.rdc1.sdca.home.com (InterMail vM.4.01.02.00 201-229-116) with SMTP id <20000427173151.FTHM20195.mail.rdc1.sdca.home.com@cx443070a>; Thu, 27 Apr 2000 10:31:51 -0700 Message-ID: <001d01bfb070$12236b00$5a5d0418@vista1.sdca.home.com> From: "Jeremiah Gowdy" To: "Steve Passe" , "James Housley" Cc: References: <200004271609.KAA24711@Ilsa.StevesCafe.com> Subject: Re: hlt instructions and temperature issues Date: Thu, 27 Apr 2000 10:43:17 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4132.1800 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4132.1800 Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org In this piece of code: ------------------------------------ ENTRY(default_halt) sti #ifndef SMP hlt /* XXX: until a wakeup IPI */ #ifdef SMP #ifdef CHEAP_TPR movl $0, lapic_tpr #else andl $~APIC_TPR_PRIO, lapic_tpr #endif /** CHEAP_TPR */ #endif hlt ret ------------------------------------ Seems to me, if SMP is not defined, hlt gets executed twice. In other words: ENTRY(default_halt) sti #ifndef SMP hlt /* XXX: until a wakeup IPI */ hlt ret Is this not the case ? Am I missing something in the behavior of hlt ? Does it return to the next line of code EIP is pointing to after it recieves an INT and wakes up ? If that's the case, it seems this code would break the nonSMP version (it would take two INTs to wake, because the next instruction after the first wake would be another hlt. If I'm way off base so be it. I just thought maybe I'd point that out, and if I'm wrong, learn something :) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message