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

Reply via email to