Messages in this thread | | | Subject | linux 2.1.75 + UTIME 1.14 crash mid-bootup | Date | Wed, 24 Dec 1997 02:29:24 -0600 (CST) | From | kwrohrer@enteract ... |
| |
On my K5 I get a repatable crash mid-bootup with UTIME under 2.1.75; the timer gets calibrated, I see the message about kswapd starting, then:
divide error: 0000 CPU: 0 EIP: 0010:[<c010d07e>] EFLAGS: 0010097 eax: fa552692 ebx: 00000000 ecx: 00000211 edx: ffffffc0 esi: 00000000 edi: c01feaa8 ebp: 00009000 esp: c0005f44 ds: 0018 es: 0018 ss: 0018 Process swapper (pid: 1, process nr: 1, stackpage = c0005000) Stack: c0005f70 00000296 c010d0e6 c0004000 c0005fe4 c0191170 c0005f70 c0004000 c0005fe4 c01fecb4 00000001 34a0bc12 00046cd0 c01911ce c01feaa8 00000000 c01eae1a 00000000 c01eae04 c01ea0c1 c0004000 c0005fe4 00000000 00009000 Call Trace: [<c010d0e6>] [<c0191170>] [<c01911ce>] [<c012ee50>] [<c010996a>] [<c0120bcc>] [<c01080d3>] [<c0107fe0>] [<c0108084>] Code: f7 f1 ba 10 27 00 00 89 c1 31 c0 f7 f1 a3 98 78 1d c0 89 c3
Using `/System.map' to map addresses to symbols.
>>EIP: c010d07e <do_fast_gettimeoffset+36/64> Trace: c010d0e6 <do_gettimeofday+22/58> Trace: c0191170 <init_std_data+14/58> Trace: c01911ce <rand_clear_pool+1a/20> Trace: c012ee50 <sys_setup+40/44> Trace: c010996a <system_call+3a/40> Trace: c0120bcc <kswapd> Trace: c01080d3 <init+4f/1ac> Trace: c0107fe0 <this_must_match_init_task+1fe0/2000> Trace: c01080d3 <init+4f/1ac>
Code: c010d07e <do_fast_gettimeoffset+36/64> divl %ecx,%eax Code: c010d080 <do_fast_gettimeoffset+38/64> movl $0x2710,%edx Code: c010d085 <do_fast_gettimeoffset+3d/64> movl %eax,%ecx Code: c010d087 <do_fast_gettimeoffset+3f/64> xorl %eax,%eax Code: c010d089 <do_fast_gettimeoffset+41/64> divl %ecx,%eax Code: c010d08b <do_fast_gettimeoffset+43/64> movl %eax,0xc01d7898 Code: c010d090 <do_fast_gettimeoffset+48/64> movl %eax,%ebx Code: c010d092 <do_fast_gettimeoffset+4a/64>
[the last Code: line out of ksymoops ends without a newline]
Clues? The patch applied cleanly, no .rej files exist, and the 2.1.75 I built before applying the utime patch works fine (at the very least, it boots :-)).
Note that when I built arch/i386/kernel/time.s, I didn't see code looking like the above; all the divl instructions had but a single argument! (gcc 2.7.2.3, libc 5.4.recent...)
Should this function even be called with UTIME enabled? I know some "fast" timer code breaks UTIME, but it's not clear which is which...
Keith
| |