Re: Strange OOPS in 2.0.25 kernel

Tyson D Sawyer (tyson@rwii.com)
Mon, 2 Dec 1996 23:52:16 -0500 (EST)


I'm no expert at this but I just got a quick lesson on it from
a helpful person on the list. Here goes:

> Hello, i have a system that ran fine for some months with 1.2.13 kernel.
> About two weeks ago i installed 2.0.25 kernel and related commands
> and libraries.
> After 7 days from last reboot i got the oops:
>
> ---------------------------------------------------------------------------
> Unable to handle kernel NULL pointer dereference at virtual address
> c0000000 current->tss.cr3 = 00a46000, %cr3 = 00a46000
*^^^^^^^
[...]
> EIP: 0010:[<0011d69a>]
^^^ ^^^^^^^^^
[...]
> eax: 000003fc ebx: 0057c000 ecx: 00000000 edx: 00000003
^^^ *^^^^^^^
[...]
> Code: 11d69a <kmalloc+ca/220> cmpl $0x55ffaa,(%ecx)
^^^^^^ ^^^^^^
> ---------------------------------------------------------------------------
> Unable to handle kernel paging request at virtual address c8008b80
*^^^^^^^
> EIP: 0010:[<00123c60>]
^^^ ^^^^^^^^
[...]
> eax: 08008b80 ebx: 00010302 ecx: 00000302 edx: 00000444
^^^ *^^^^^^^
[...]
> Code: 123c60 <get_hash_table+30/d0> cmpl %ebp,(%eax)
^^^^^^ ^^^^^^
> ---------------------------------------------------------------------------
> Unable to handle kernel NULL pointer dereference at virtual address
> c0000028 current->tss.cr3 = 00018000, %cr3 = 00018000
*^^^^^^^
[...]
> EIP: 0010:[<001238f4>]
^^^ ^^^^^^^^^^
[...]
> eax: 00000000 ebx: 00000000 ecx: 00000000 edx: 00c94bf4
^^^ *^^^^^^^
[...]
> Code: 1238f4 <sync_buffers+54/1a0> cmpl %ebx,0x28(%eax)
^^^^^^ ^^^^^^^^^^

> ---------------------------------------------------------------------------
> Unable to handle kernel paging request at virtual address c8008b80
*^^^^^^^
> EIP: 0010:[<00123c60>]
^^^^^^^^
[...]
> eax: 08008b80 ebx: 00d50302 ecx: 00000400 edx: 00000444
^^^ *^^^^^^^
> Code: 123c60 <get_hash_table+30/d0> cmpl %ebp,(%eax)
^^^^^^ ^^^^^^
------------------------------------------------------------------------------
> Spada Flavio CRCC s.r.l, via Passerini 2, 20052 Monza (MI)
> ITALY Tel. +39.39.387998 FAX
> +39.39.382115 e-mail: fl@crcc.it
> ------------------------------------------------------------------------------

In every case the EIP (extended instruction pointer) indicates that
the code was attempting to access a value in memory. The address
of that value (according to the instruction and the value of the index
register used) is different by the 2 most significant bits from what
the processor attempted to access. That is noticed by the most
significant nibble changing from 0 to c in every oops as I marked by the
*'s in the context above.

I am a bit puzzled by the registers containing what appears to be a
proper pointer value but the processor attempts to access a different
location. Is this a CPU problem rather than a cache or memory problem?
If it where a memory problem of some kind I would expect the error to
show up in the index registers, yet it doesn't. Any real experts
able to comment on this?

Have you checked your CPU fan lately? Is it working normally without
being clogged with dust?

Cheers!
Ty