Messages in this thread | | | Date | Wed, 4 Dec 1996 01:18:03 -0500 (EST) | From | Ion Badulescu <> | Subject | Re: oops |
| |
On Tue, 3 Dec 1996, Ryan Smith-Roberts wrote:
> First oops in a while. > > This is with 2.0.25 on a Pentium 60. > > Probably my cheap RAM.
Probably. See below..
> eax: 00a34cb4 ebx: 002dc810 ecx: 00000000 edx: 04000000 ^^^^^^^^^^^^^ This is the whole sequence of assembly (in my vmlinux):
001119cc <do_fork+314> movl $0x100,0x10(%esp,1) 001119d4 <do_fork+31c> movl 0x0(%ebp),%edx 001119d7 <do_fork+31f> addl $0x4,%ebp 001119da <do_fork+322> movl %edx,(%eax) 001119dc <do_fork+324> addl $0x4,%eax 001119df <do_fork+327> testl %edx,%edx 001119e1 <do_fork+329> je 001119e7 <do_fork+32f> 001119e3 <do_fork+32b> incw 0xe(%edx) 001119e7 <do_fork+32f> decl 0x10(%esp,1) 001119eb <do_fork+333> jne 001119d4 <do_fork+31c>
The oops occurs on incw; now obviously 0x04000000 is not a valid pointer and it should have been 0, in which case the testl/je sequence would have avoided the incw. Again, 0x04000000 differs from 0 by just one bit.. and it's been loaded from memory/cache at <do_fork+322>, so bad memory is definitely something to look into...
Ionut
-- It is better to keep your mouth shut and be thought a fool, than to open it and remove all doubt.
| |