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>