Re: 2.4.22-pre lockups (decoded oops for pre8)

From: Willy Tarreau (willy@w.ods.org)
Date: Sun Aug 03 2003 - 02:25:25 EST


Hi Stephan,

This is in remove_page_from_hash_queue() at filemap.c:114 :
    *pprev = next;

pprev is taken from page->pprev_hash and is considered invalid here (4129b0fc).
Assuming it has been corrupted earlier, it seems that the only files able to
touch this either directly or indirectly are :
  - mm/filemap.c (add_page_to_hash_queue, add_to_page_cache*)
  - mm/shmem.c (add_to_page_cache_unique)
  - mm/swap_state.c (idem)
  - fs/ext3/inode.c and fs/buffer.c (find_or_create_page)

So the problem may be narrowed down to a few files. Perhaps digging through
the VM changes since before you had a problem will give you more clues...

Cheers,
Willy

On Sat, Aug 02, 2003 at 02:27:34PM +0200, Stephan von Krawczynski wrote:
> Unable to handle kernel paging request at virtual address 4129b0fc
> c0130084
> *pde = 313f6067
> Oops: 0002
> CPU: 1
> EIP: 0010:[<c0130084>] Not tainted
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010246
> eax: 00000000 ebx: c2cfdba0 ecx: 00000000 edx: 4129b0fc
> esi: d5fb0a24 edi: 0001ca22 ebp: c02eaaa8 esp: c345df30
> ds: 0018 es: 0018 ss: 0018
> Process kswapd (pid: 5, stackpage=c345d000)
> Stack: c2cfdba0 d5fb0a24 c2cfdba0 c013924f c2cfdba0 000001d0 00000200 000001d0
> 00000006 00000020 000001d0 00000020 00000006 c0139493 00000006 00000001
> c02eaaa8 000001d0 00000006 c02eaaa8 00000000 c013950e 00000020 c02eaaa8
> Call Trace: [<c013924f>] [<c0139493>] [<c013950e>] [<c013961c>] [<c01396a8>]
> [<c01397d8>] [<c0139740>] [<c0105000>] [<c010592e>] [<c0139740>]
> Code: 89 02 c7 43 24 00 00 00 00 f0 ff 0d 9c a5 37 c0 5a 5b 5e c3
>
>
> >>EIP; c0130084 <__remove_inode_page+44/60> <=====
>
> >>ebx; c2cfdba0 <_end+2952980/3852ee40>
> >>esi; d5fb0a24 <_end+15c05804/3852ee40>
> >>ebp; c02eaaa8 <contig_page_data+168/340>
> >>esp; c345df30 <_end+30b2d10/3852ee40>
>
> Trace; c013924f <shrink_cache+2df/3b0>
> Trace; c0139493 <shrink_caches+63/a0>
> Trace; c013950e <try_to_free_pages_zone+3e/60>
> Trace; c013961c <kswapd_balance_pgdat+4c/b0>
> Trace; c01396a8 <kswapd_balance+28/40>
> Trace; c01397d8 <kswapd+98/c0>
> Trace; c0139740 <kswapd+0/c0>
> Trace; c0105000 <_stext+0/0>
> Trace; c010592e <arch_kernel_thread+2e/40>
> Trace; c0139740 <kswapd+0/c0>
>
> Code; c0130084 <__remove_inode_page+44/60>
> 00000000 <_EIP>:
> Code; c0130084 <__remove_inode_page+44/60> <=====
> 0: 89 02 mov %eax,(%edx) <=====
> Code; c0130086 <__remove_inode_page+46/60>
> 2: c7 43 24 00 00 00 00 movl $0x0,0x24(%ebx)
> Code; c013008d <__remove_inode_page+4d/60>
> 9: f0 ff 0d 9c a5 37 c0 lock decl 0xc037a59c
> Code; c0130094 <__remove_inode_page+54/60>
> 10: 5a pop %edx
> Code; c0130095 <__remove_inode_page+55/60>
> 11: 5b pop %ebx
> Code; c0130096 <__remove_inode_page+56/60>
> 12: 5e pop %esi
> Code; c0130097 <__remove_inode_page+57/60>
> 13: c3 ret
>
>
> 1 warning issued. Results may not be reliable.
>
>
> Hope this helps.
> Anything further I can do?
>
> Regards,
> Stephan
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 07 2003 - 22:00:20 EST