Re: Panic "Fatal trap 18: integer divide fault while in kernel mode"

From: David Wolfskill <david_at_catwhisker.org>
Date: Thu, 30 Apr 2009 14:06:18 -0700
On Thu, Apr 30, 2009 at 04:40:53PM -0400, Jung-uk Kim wrote:
> ...
> > OK; I tried, but the symptoms appear unchanged:
> > ...
> Okay, then please try this instead.
> 
> Jung-uk Kim

> --- sys/i386/i386/mp_machdep.c	(revision 191699)
> +++ sys/i386/i386/mp_machdep.c	(working copy)
> _at__at_ -267,6 +267,8 _at__at_
>  		else if (type == CPUID_TYPE_CORE)
>  			cpu_cores = cnt;
>  	}
> +	if (cpu_cores == 0)
> +		cpu_cores = 1;
>  	if (cpu_logical == 0)
>  		cpu_logical = 1;
>  	cpu_cores /= cpu_logical;
> _at__at_ -352,7 +354,7 _at__at_
>  	else if (cpu_high)
>  		topo_probe_0x4();
>  	if (cpu_cores == 0)
> -		cpu_cores = mp_ncpus;
> +		cpu_cores = mp_ncpus > 0 ? mp_ncpus : 1;
>  	if (cpu_logical == 0)
>  		cpu_logical = 1;
>  }
> --- sys/amd64/amd64/mp_machdep.c	(revision 191699)
> +++ sys/amd64/amd64/mp_machdep.c	(working copy)
> _at__at_ -214,6 +214,8 _at__at_
>  		else if (type == CPUID_TYPE_CORE)
>  			cpu_cores = cnt;
>  	}
> +	if (cpu_cores == 0)
> +		cpu_cores = 1;
>  	if (cpu_logical == 0)
>  		cpu_logical = 1;
>  	cpu_cores /= cpu_logical;
> _at__at_ -299,7 +301,7 _at__at_
>  	else if (cpu_high)
>  		topo_probe_0x4();
>  	if (cpu_cores == 0)
> -		cpu_cores = mp_ncpus;
> +		cpu_cores = mp_ncpus > 0 ? mp_ncpus : 1;
>  	if (cpu_logical == 0)
>  		cpu_logical = 1;
>  }

I reverted the earlier patch, applied the above successfully, but no
joy:

...
 ³  Select option, [Enter] for default     ³
 ³  or [Space] to pause timer  8           ³
 ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ


GDB: no debug ports present
KDB: debugger backends: ddb
KDB: current backend: ddb
SMAP type=01 base=0000000000000000 len=000000000009fc00
SMAP type=02 base=000000000009fc00 len=0000000000000400
SMAP type=01 base=0000000000100000 len=000000002fee2800
SMAP type=02 base=000000002ffe2800 len=000000000001d800
SMAP type=02 base=00000000feda0000 len=0000000000060000
SMAP type=02 base=00000000ffb80000 len=0000000000480000
Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.0-CURRENT #1028 r191682M: Thu Apr 30 13:54:12 PDT 2009
    root_at_d254.dwolf.juniper.net.:/common/S4/obj/usr/src/sys/CANARY
WARNING: WITNESS option enabled, expect reduced performance.
Preloaded elf kernel "/boot/kernel/kernel" at 0xc1131000.
Preloaded elf module "/boot/kernel/linux.ko" at 0xc113114c.
Preloaded elf module "/boot/kernel/if_an.ko" at 0xc11311f8.
Preloaded elf module "/boot/kernel/if_wi.ko" at 0xc11312a4.
Preloaded elf module "/boot/kernel/radeon.ko" at 0xc1131350.
Preloaded elf module "/boot/kernel/drm.ko" at 0xc11313fc.
Timecounter "i8254" frequency 1193182 Hz quality 0
Calibrating TSC clock ... TSC clock: 2392953912 Hz
CPU: Mobile Intel(R) Pentium(R) 4 - M CPU 2.40GHz (2392.95-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf27  Stepping = 7
  Features=0xbfebf9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x400<CNXT-ID>

Instruction TLB: 4 KB, 2 MB or 4 MB pages, fully associative, 128 entries
Data TLB: 4 KB or 4 MB pages, fully associative, 64 entries
1st-level data cache: 8 KB, 4-way set associative, sectored cache, 64 byte line size
Trace cache: 12K-uops, 8-way set associative
2nd-level cache: 512 KB, 8-way set associative, sectored cache, 64 byte line size
real memory  = 805306368 (768 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x000000000009efff, 647168 bytes (158 pages)
0x0000000000100000 - 0x00000000003fffff, 3145728 bytes (768 pages)
0x0000000001425000 - 0x000000002f2d9fff, 770396160 bytes (188085 pages)
avail memory = 769626112 (733 MB)
bios32: Found BIOS32 Service Directory header at 0xc00ffe80
bios32: Entry = 0xffe90 (c00ffe90)  Rev = 0  Len = 1
pcibios: PCI BIOS entry at 0xf0000+0xbfee
pnpbios: Found PnP BIOS data at 0xc00fe2d0
pnpbios: Entry = f0000:e2f4  Rev = 1.0
pnpbios: Event flag at 4b4
Other BIOS signatures found:


Fatal trap 18: integer divide fault while in kernel mode
cpuid = 0; apic id = 00
instruction pointer     = 0x20:0xc0b3ca03
stack pointer           = 0x28:0xc1420d00
frame pointer           = 0x28:0xc1420d20
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         = 0 (swapper)
[thread pid 0 tid 100000 ]
Stopped at      cpu_topo+0x43:  idivl   %ecx,%eax
db> bt
Tracing pid 0 tid 100000 td 0xc0d43690
cpu_topo(2,c1420d34,c081ff07,c1420d58,c0820042,...) at cpu_topo+0x43
smp_topo(c0804378,2,c4145a5c,fffffff,0,...) at smp_topo+0x10b
sched_setup(0,141ec00,141ec00,141e000,1425000,...) at sched_setup+0x1a
mi_startup() at mi_startup+0x96
begin() at begin+0x2c
db> 

Peace,
david
-- 
David H. Wolfskill				david_at_catwhisker.org
Depriving a girl or boy of an opportunity for education is evil.

See http://www.catwhisker.org/~david/publickey.gpg for my public key.

Received on Thu Apr 30 2009 - 19:06:19 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:46 UTC