It really helps if you provide more of the output, like everything the kernel printed up to the point of the crash. If your disassembly is accurate, it looks like a divide by zero because high and low have the same value near the end of est_init.
You can probably work around this by booting with -d, then writing some big number like 1000 to setperf_prio. Then build a kernel that prints out a few of the relevant values near there (est_fqlist->n, cpuspeed, high, low before doing the divide). And send a complete dmesg. On Mon, May 17, 2010 at 9:04 PM, Todd <norr...@gmail.com> wrote: > On Fri, May 14, 2010 at 8:55 PM, Todd <norr...@gmail.com> wrote: > >> I ordered the 4.7 cd and have successfully installed it on 2 machines, but >> the third is giving me some trouble. The install went OK, but after reboot, >> there was a crash. I took pictures of the screen and typed what I think is >> most important below. I get the same message if I type trace at the ddb >> prompt. >> >> I though I may have forgotten to flag the partition as active, so I >> rebooted the install cd and verified that it was active. If it matters, >> OpenBSD is installed on the 4th primary partition. >> >> I'm still fairly new to OpenBSD and am not sure if there is really >> something wrong, of if I have done something dumb. >> >> >> >> Stopped at est_init+0x017: idivl %esi %eax >> est_init(d0992174,0,0,d04f6235) at est_init+0x107 >> intel686_setperf_setup(d0992160,d0a43e98,d0a43ec8,d04f627d at >> intel686_setperf_setup+0x46 >> mainbus_attach(0,d1c48c0,0,dbdef000,d0a42334) at mainbus_attach+0x236 >> config_attach(0,d08686d4,0,0,0) at config_attach+0xfd >> config_rootfound(d0785242,0,d0a43f38,d04c37fe) at config_rootfound+0x27 >> main(0,0,0,0,0) at main+0x3b2 >> >> >> show panic >> the kernel did not panic >> > > > I am trying to follow the debug instructions from the faq. I built the > kernel and ran the following: > > #objdump --line --disassemble --reloc est.o >est.dis > # grep "<est_init>:" est.dis > 000001e4 <est_init>: > > so, 0x1e4 + 0x017 = 0x1FB > > here is part of est.dis, but there is no line 0x1FB, and realized I made a > typo. The stop was at 0x107, not 0x017. so then 0x1e4 + 0x107 = 0x2EB I > think this is the applicable section of est.dis, but it is not clear to me > whick line of the est.c is cousing the trouble. > > 2d3: R_386_32 cpuspeed > 2d7: 29 c8 sub %ecx,%eax > 2d9: 8d 04 80 lea (%eax,%eax,4),%eax > 2dc: 0f b7 52 02 movzwl 0x2(%edx),%edx > 2e0: 8d 04 80 lea (%eax,%eax,4),%eax > 2e3: 29 ca sub %ecx,%edx > 2e5: c1 e0 02 shl $0x2,%eax > 2e8: 89 d6 mov %edx,%esi > 2ea: 99 cltd > 2eb: f7 fe idiv %esi > 2ed: a3 00 00 00 00 mov %eax,0x0 > 2ee: R_386_32 perflevel > 2f2: c7 04 24 1e 00 00 00 movl $0x1e,(%esp) > 2f5: R_386_32 .rodata.str1.1 > 2f9: e8 fc ff ff ff call 2fa <est_init+0x116> > 2fa: R_386_PC32 printf > 2fe: a1 00 00 00 00 mov 0x0,%eax