panic on 4.10-STABLE boot w/SMP

Scott Johnson scott.johnson at gmail.com
Tue Jun 1 15:43:04 PDT 2004


Hi all,

I cvsup'ed to the latest stable yesterday.  My new kernel config looks
like this:

--- GENERIC     Thu May 20 03:36:06 2004
+++ SMPX        Tue Jun  1 17:41:48 2004
@@ -18,18 +18,19 @@
 # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.59 2004/04/07
20:29:01 vkashyap Exp $
 
 machine                i386
-cpu            I386_CPU
-cpu            I486_CPU
-cpu            I586_CPU
+#cpu           I386_CPU
+#cpu           I486_CPU
+#cpu           I586_CPU
 cpu            I686_CPU
-ident          GENERIC
+ident          SMPX
 maxusers       0
 
 #makeoptions   DEBUG=-g                #Build kernel with gdb(1) debug symbols
+options                DDB
 
 options        MATH_EMULATE            #Support for x87 emulation
 options        INET                    #InterNETworking
-options        INET6                   #IPv6 communications protocols
+#options       INET6                   #IPv6 communications protocols
 options        FFS                     #Berkeley Fast Filesystem
 options        FFS_ROOT                #FFS usable as root device [keep this!]
 options        SOFTUPDATES             #Enable FFS soft updates support
@@ -61,8 +62,8 @@
                                        # output.  Adds ~215k to driver.
 
 # To make an SMP kernel, the next two are needed
-#options       SMP                     # Symmetric MultiProcessor Kernel
-#options       APIC_IO                 # Symmetric (APIC) I/O
+options        SMP                     # Symmetric MultiProcessor Kernel
+options        APIC_IO                 # Symmetric (APIC) I/O
 
 device         isa
 device         eisa

As you can see, the changes are minor.  I removed support for
processors that I'll never use.  I removed IPV6.  And I enabled SMP. 
But when I boot, I get a panic every time:

Fatal trap 18: integer divide fault while in kernel mode
mp_lock = 0000000d; cpuid = 0; lapic.id = 00000000
instruction pointer     = 0x8:0xc038e20c
stack pointer           = 0x10:0xc0560f44
frame pointer           = 0x10:0xc0560f88
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = Idle
interrupt mask          = net tty bio cam  <- SMP: XXX
kernel: type 18 trap, code=0
Stopped at      0xc038e20c:     divl    0xc04a268c,%eax
db> trace
(null)(d093c708,c0560fa0,c038d8e8,9f000,c0560fe4) at 0xc038e20c
(null)(9f000,c0560fe4,c03886fa,c041fcc0,5d169000) at 0xc038dbdc
(null)(c041fcc0,5d169000,0,1745a4,0) at 0xc038d8e8
(null)(0,55dc00,568000,0,c013176d) at 0xc03886fa
(null)(0,0,0,0,0) at 0xc0221f20
(null)() at 0xc013176d

>From what I can tell, the closest symbol to the listed instruction
pointer is this:
c038e2bc t mptable_hyperthread_fixup

My system has two Athlon XP 1600+ processors.  I understand that these
are not MPs, but they've worked fine under SMP for quite some time
now.  I've been running 4.9-STABLE up until I decided to upgrade
recently.

Also, when I disable SMP, the same kernel config boots without issue.

Any ideas?  If I can provide any further information, just let me know
what you need to help.

Thanks,
Scott Johnson


More information about the freebsd-stable mailing list