Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Dec 1994 20:32:21 +0900
From:      hosokawa@mt.cs.keio.ac.jp (HOSOKAWA Tatsumi)
To:        bde@zeta.org.au
Cc:        freebsd-hackers@freebsd.org, hosokawa@mt.cs.keio.ac.jp
Subject:   Re: DX4/100 BUG
Message-ID:  <199412241132.UAA25497@nanbu.mt.cs.keio.ac.jp>
In-Reply-To: Your message of Sat, 24 Dec 1994 21:39:33 %2B1100. <199412241039.VAA02440@godzilla.zeta.org.au>

next in thread | previous in thread | raw e-mail | index | archive | help

In article <199412241039.VAA02440@godzilla.zeta.org.au>
bde@zeta.org.au writes:

>> It's easy to ifdef the HLT instruction or to overwrite it with a NOP
>> in the kernel binary.  Linux tests if HLT works and runs essentially
>> 
>> 	if (hlt_works_ok)
>> 		__asm("hlt");
>> 
>> in the idle loop.

Thank you.  It's very simple solution.  But I have more two questions.

(1) swtch.s executes HLT instruction from following code.

  idle_loop:
          cli
          cmpl    $0,_whichrtqs                   /* real-time queue */
          jne     sw1a
          cmpl    $0,_whichqs                     /* normal queue */
          jne     nortqr
          cmpl    $0,_whichidqs                   /* 'idle' queue */
          jne     idqr
  #ifdef APM
          call    _apm_cpu_idle
          call    _apm_cpu_busy
  #else
          sti
          hlt                                     /* wait for interrupt */
  #endif
          jmp     idle_loop

   If the HLT is removed from here, almost all idle loop is executed
   without accepting interrupts.  The system will be down.  What is
   the most appropriate solution?  I think these CMPL and JNE pairs
   are atomic operations.

(2) How Linux probes this DX4 HLT bug?

Thank you very much.

---
     -----------------------------------------------------------
     HOSOKAWA, Tatsumi               (hosokawa@mt.cs.keio.ac.jp)
     Dept. of Computer Science, Keio University, Yokohama, Japan
     -----------------------------------------------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199412241132.UAA25497>