On Wed, 11 Oct 2000, Mike Elmore wrote:
> All,
>
> Had a crash this morning for the first time in a while...
> 2.2.17 Locked up Cold.
>
> Machine is a SMP 2xPII450 w/ 128M RAM on a Tyan Tiger100
> BX board.
>
> Here's the kernel output:
> ----------------------------------------
> Oct 11 08:29:30 lingas kernel: Unable to handle kernel paging request at virtual
>address 40000020
> Oct 11 08:29:30 lingas kernel: current->tss.cr3 = 00101000, %cr3 = 00101000
> Oct 11 08:29:30 lingas kernel: *pde = 00000000
> Oct 11 08:29:30 lingas kernel: Oops: 0000
> Oct 11 08:29:30 lingas kernel: CPU: 1
> Oct 11 08:29:30 lingas kernel: EIP: 0010:[try_to_free_buffers+28/236]
> Oct 11 08:29:30 lingas kernel: EFLAGS: 00010282
> Oct 11 08:29:30 lingas kernel: eax: 00072420 ebx: c03a1890 ecx: 00000001 edx:
>00010000
> Oct 11 08:29:30 lingas kernel: esi: 40000000 edi: 40000000 ebp: c03a1890 esp:
>c7f9df8c
> Oct 11 08:29:30 lingas kernel: ds: 0018 es: 0018 ss: 0018
> Oct 11 08:29:30 lingas kernel: Process kswapd (pid: 5, process nr: 6,
>stackpage=c7f9d000)
> Oct 11 08:29:30 lingas kernel: Stack: 00000001 00000030 ffffffff c01201d6 c03a1890
>00000001 c7f9c000 0000000d
> Oct 11 08:29:30 lingas kernel: 00000006 00000001 00000001 c01254af 00000006
>00000030 c7f9c000 c0201dfa
> Oct 11 08:29:30 lingas kernel: c7f9c2b9 00008000 c7f9c000 c7f9c000 c01255a7
>00000030 00000f00 c7ff3fbc
> Oct 11 08:29:30 lingas kernel: Call Trace: [shrink_mmap+294/376]
>[do_try_to_free_pages+103/240] [tvecs+8634/13632] [kswapd+111/152]
>[get_options+0/116] [kernel_thread+35/48]
> Oct 11 08:29:30 lingas kernel: Code: 83 7e 20 00 75 62 f6 46 18 46 75 5c 8b 76 14 39
>fe 75 ed 89
> Oct 11 08:29:57 lingas kernel: Unable to handle kernel paging request at virtual
>address 80000020
> Oct 11 08:29:57 lingas kernel: current->tss.cr3 = 06a11000, %cr3 = 06a11000
> Oct 11 08:29:57 lingas kernel: *pde = 00000000
> Oct 11 08:29:57 lingas kernel: Oops: 0000
> Oct 11 08:29:57 lingas kernel: CPU: 0
> ----------------------------------------
>
> What are the possible causes of such a thing?
Here is the code which causes the problem:
int try_to_free_buffers(struct page * page_map, int wait)
{
struct buffer_head * tmp, * bh = page_map->buffers;
int too_many;
tmp = bh;
do {
if (buffer_busy(tmp))
goto busy;
tmp = tmp->b_this_page;
} while (tmp != bh);
succeed:
...
The problem is that "page_map->buffers" is pointing to the address
"40000000".
Now I'm not sure if this can be caused by a memory problem.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/