|
HALT! on Linux
From the victim: From Rick Hohensee From Dr. Jim: I beleive that question was answered: > The problem hinges around the fact that the FPU test disables the
timer interrupt. From Dr. Jim: From http://www.intel.com/procs/support/pentium/fdiv/replqa3.htm: Don´t blame me, but sorry Jim, but you are wrong. Direct from the kernel-sources: From Stephan Goll: if (mca_pentium_flag) { /* The IBM Model 95 machines with pentiums lock up on * fpu test, so we avoid it. All pentiums have inbuilt * FPU and thus should use exception 16. We still do * the FDIV test, although I doubt there where ever any * MCA boxes built with non-FDIV-bug cpus. --------- printk("mca-pentium specified, avoiding FPU coupling test... "); if (!boot_cpu_data.fdiv_bug) printk("??? No FDIV bug? Lucky you...\n"); else printk("detected FDIV bug though.\n"); return; } --------- See bugs.h for more details. Greetings, From Louis Ohland: Exception 16? From Su: /* * check if exception 16 works correctly.. This is truly evil * code: it disables the high 8 interrupts to make sure that * the irq13 doesn't happen. But as this will lead to a lockup * if no exception16 arrives, it depends on the fact that the * high 8 interrupts will be re-enabled by the next timer tick. * So the irq13 will happen eventually, but the exception 16 * should get there first.. */ This comment is in a fuction that is called before the one that says it's "Checking 'hlt' instruction...". I'm wondering if the high 8 interrupts get re-enabled (and therefore the IRQ 13) *before* the exception 16 arrives, and when the asm code that actually does the HLT is executed, the system hangs. I haven't been through all the code yet, just bugs.h, so this is just a guess... From Dr. Jim: What to Do? From Dr. Jim Shorney: |
Content created and/or collected by: Ardent Tool of Capitalism - MAD Edition! is maintained by Tomáš Slavotínek. |