Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Dec 1994 23:02:36 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, hosokawa@mt.cs.keio.ac.jp
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: DX4/100 BUG
Message-ID:  <199412241202.XAA03357@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>  #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.

Only one instruction after the `sti' is required for excepting interrupts.

>(2) How Linux probes this DX4 HLT bug?

hlt_works_ok defaults to 1.  It is cleared if to boot loader passes the
string "no-hlt" on the command line.  FreeBSD could use a new boot flag.

HLT is probed by attempting to execute it (if (hlt_works_ok)) so that the
system hangs early (after printing a message without a newline) if HLT
doesn't work.  HLT is easier to test than WAIT because execution resumes
at the next instruction after an interrupt terminates the HLT.

Bruce



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