Re: 2.2.17 Crash

From: Marcelo Tosatti (marcelo@conectiva.com.br)
Date: Wed Oct 11 2000 - 12:35:40 EST


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 majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Oct 15 2000 - 21:00:18 EST