On Thursday 30 April 2009 04:29 pm, David Wolfskill wrote: > On Thu, Apr 30, 2009 at 03:51:59PM -0400, Jung-uk Kim wrote: > > ... > > > > > >> db> bt > > > >> Tracing pid 0 tid 100000 td 0xc0d43610 > > > >> 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 > > > > > > > > My guess is that (cpu_cores * cpu_logical) somehow equals to > > > > zero. > > > > > > That was masked earlier by additional checks on zero, > > > and now that routine moved to the separate function > > > (and to separate call path from subr_smp.c:mp_start() > > > which seems not to be called). > > > > > > > Have you by a chance saved this crash dump? > > > > I think that t would be interesting to look at it in kgdb. > > I was unable to save a dump; sorry -- "panic" merely sat there. > Since the kernel had yet to have probed any devices (that I can > tell), that may have had something to do with it. > > > Please try the attached patch. > > > > Jung-uk Kim > > > > --- 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; > > --- 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; > > OK; I tried, but the symptoms appear unchanged: > > ... > � Select option, [Enter] for default � > � or [Space] to pause timer 9 � > 읕컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴컴� > > > 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 #1027 r191682M: Thu Apr 30 13:19:50 > 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: 2392953980 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:0xc0b3c9f3 > 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> Okay, then please try this instead. Jung-uk Kim
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:46 UTC