New interrupt stuff breaks ASUS 2 CPU system
brandt at fokus.fraunhofer.de
Tue Nov 4 08:38:29 PST 2003
On Tue, 4 Nov 2003, Harti Brandt wrote:
HB>On Tue, 4 Nov 2003, John Baldwin wrote:
HB>JB>On 04-Nov-2003 Harti Brandt wrote:
HB>JB>> I have an ASUS system with 2 CPUs that I need to run at HZ=10000. This
HB>JB>> worked until yesterday, but with the new interrupt code it doesn't boot
HB>JB>> anymore. It works for the standard HZ, but if I set HZ=1000 I get a double
HB>JB>> fault. I suspect a race condition in the interrupt handling. My config
HB>JB>> file has
HB>JB>> options SMP
HB>JB>> device apic
HB>JB>> options HZ=1000
HB>JB>Ok, I can try to reproduce.
HB>JB>> Device configuration finished.
HB>JB>> Timecounter "TSC" frequency 1380009492 Hz quality -100
HB>JB>> Timecounters cpuid = 0; apic id = 00
HB>JB>> instruction pointer = 0x8:0xc048995d
HB>JB>> stack pointer = 0x10:0xc0821bf4
HB>JB>> frame pointer cpuid = 0; apic id = 00
HB>JB>> 0xc048995d is in critical_exit. It is the jmp after the popf from
HB>JB>This is where interrupts are re-enabled, so you are getting an interrupt.
HB>JB>It might be helpful to figure what type of fault you are actually getting.
HB>tf_err is 0, tf_trapno is 30 (decimal).
I have replaced all the reserved vectors with individual ones, that set
tf_err to the index (vector number). It appears the the vector number is
39 decimal. What does that mean?
brandt at fokus.fraunhofer.de, harti at freebsd.org
More information about the freebsd-current