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/

Reply via email to