匿名 | ログイン | 新しいユーザーの作成 | 2024-12-05 03:48 JST |
メイン | マイビュー | 検索 | 変更履歴 | ロードマップ | Vine Linux ホーム |
課題の詳細を表示 [ コメントにジャンプ ] | [ 課題の履歴 ] [ 印刷 ] | ||||||||
ID | プロジェクト | カテゴリ | 登録日 | 最終更新 | |||||
0000067 | Vine Linux | 1 バグ | 2006-06-15 09:32 | 2006-07-29 01:22 | |||||
報告者 | anonymous | ||||||||
担当者 | |||||||||
優先度 | 中 | 再現性 | 不明 | ||||||
状態 | 完了 | 解決状況 | 再現不可 | ||||||
バージョン | 3.2 | ||||||||
修正予定バージョン | 修正済バージョン | ||||||||
概要 | 0000067: mm/slab.c にて kmem_cache_reap ,システムが停止します. | ||||||||
説明 | > Unable to handle kernel NULL pointer dereference at virtual address 000 > 00000 > > > *pde = 00000000 > > > Oops: 0000 > > > CPU: 1 > > > EIP: 0010:[<c013de10>] Tainted: P > > > Using defaults from ksymoops -t elf32-i386 -a i386 > > > EFLAGS: 00010013 > > > eax: 00000000 ebx: c282ddb8 ecx: d167dec0 edx: c2835a60 > > > esi: 00000000 edi: 0000004a ebp: c282ddc8 esp: c2843f24 > > > ds: 0018 es: 0018 ss: 0018 > > > Process kswapd (pid: 5, stackpage=c2843000) > > > Stack: c1f3a640 c2842000 c03639f8 00000000 c2842000 c282ddc0 c2835a60 0 > 0000000 > > > 00000006 00000001 00000003 c282f268 00000020 000001d0 c03639f8 c > 03639f8 > > > c013f61c c2843f88 000001d0 0000003c 00000020 c013f842 c2843f88 e > 0092000 > > > Call Trace: [<c013f61c>] [<c013f842>] [<c013fa06>] [<c013fa78>] [<c0 > 13fbce>] > > > [<c0105000>] [<c01075de>] [<c013fb30>] > > > Code: 8b 00 47 39 e8 75 f9 8b 73 2c 89 fa 89 f1 d3 e2 8b 4b 4c 85 Trace; c013f61c <shrink_caches+1c/70> > > Trace; c013f842 <try_to_free_pages_zone+62/100> > > Trace; c013fa06 <kswapd_balance_pgdat+66/b0> > > Trace; c013fa78 <kswapd_balance+28/50> > > Trace; c013fbce <kswapd+9e/cd> > > Trace; c0105000 <_stext+0/0> > > Trace; c01075de <arch_kernel_thread+2e/40> > > Trace; c013fb30 <kswapd+0/cd> > > > > Code; c013de10 <kmem_cache_reap+150/3b0> > > 00000000 <_EIP>: > > Code; c013de10 <kmem_cache_reap+150/3b0> <===== > > 0: 8b 00 mov (%eax),%eax <===== > > Code; c013de12 <kmem_cache_reap+152/3b0> > > 2: 47 inc %edi > > Code; c013de13 <kmem_cache_reap+153/3b0> > > 3: 39 e8 cmp %ebp,%eax > > Code; c013de15 <kmem_cache_reap+155/3b0> > > 5: 75 f9 jne 0 <_EIP> > > Code; c013de17 <kmem_cache_reap+157/3b0> > > 7: 8b 73 2c mov 0x2c(%ebx),%esi > > Code; c013de1a <kmem_cache_reap+15a/3b0> > > a: 89 fa mov %edi,%edx > > Code; c013de1c <kmem_cache_reap+15c/3b0> > > c: 89 f1 mov %esi,%ecx > > Code; c013de1e <kmem_cache_reap+15e/3b0> > > e: d3 e2 shl %cl,%edx > > Code; c013de20 <kmem_cache_reap+160/3b0> > > 10: 8b 4b 4c mov 0x4c(%ebx),%ecx > > Code; c013de23 <kmem_cache_reap+163/3b0> > > 13: 85 00 test %eax,(%eax) 次に、Linuxカーネルのソースコードを検索すると、該当する関数はmm/slab.c > > にあり、その部分を抜き出すと以下の1710:というラベルが付いている場所に > > なります。 > > > > この「mov (%eax),%eax 」という命令は%eaxに入っている値のアドレスの値を > > 読み出して、それを%eaxに代入するという意味になります。%eaxに0が入って > > いたためNULLポインタアクセスとなってフォルトが発生したわけですが、その > > 値がどこから来たのかを上に辿ると16cfc:の「mov 0x10(%ebx),%eax」からと > > なります。「mov 0x10(%ebx),%eax」は%ebxに0x10を足したアドレスにある値 > > を%eax に代入するという意味になります。先のOOPSのロクから%ebxは > > 0x0c282ddb8ということが判っていますから、0x10(%ebx)は0x0c282ddc8となり > > ます。 | ||||||||
タグ | 設定されていません。 | ||||||||
arch | x86 | ||||||||
パッケージ | kernel | ||||||||
添付ファイル | |||||||||
コメント | |
(0003044) anonymous (参照) 2006-06-23 18:02 |
症状の発生を少しフォローします. この問題が発生しているのは, DELL PowerEdge 850 で,CPU に Pentium D を使っている場合です. Vine 3.2 を入れて使い始めました. kernelは,-smp です. smpカーネルの場合に,しばしば以下のような状況で停止するので, smpでない普通のカーネル(1CPU しか見えない)にすると,停止せずに 稼働を続けているようです. > > Unable to handle kernel NULL pointer dereference at virtual address 000 > > 00000 > > > > *pde = 00000000 > > > > Oops: 0000 > > > > CPU: 1 > > > > EIP: 0010:[<c013de10>] Tainted: P > > > > Using defaults from ksymoops -t elf32-i386 -a i386 > > > > EFLAGS: 00010013 > > > > eax: 00000000 ebx: c282ddb8 ecx: d167dec0 edx: c2835a60 > > > > esi: 00000000 edi: 0000004a ebp: c282ddc8 esp: c2843f24 > > > > ds: 0018 es: 0018 ss: 0018 > > > > Process kswapd (pid: 5, stackpage=c2843000) > > > > Stack: c1f3a640 c2842000 c03639f8 00000000 c2842000 c282ddc0 c2835a60 0 > > 0000000 > > > > 00000006 00000001 00000003 c282f268 00000020 000001d0 c03639f8 c > > 03639f8 > > > > c013f61c c2843f88 000001d0 0000003c 00000020 c013f842 c2843f88 e > > 0092000 > > > > Call Trace: [<c013f61c>] [<c013f842>] [<c013fa06>] [<c013fa78>] [<c0 > > 13fbce>] > > > > [<c0105000>] [<c01075de>] [<c013fb30>] > > > > Code: 8b 00 47 39 e8 75 f9 8b 73 2c 89 fa 89 f1 d3 e2 8b 4b 4c 85 > > > Trace; c013f61c <shrink_caches+1c/70> > > > Trace; c013f842 <try_to_free_pages_zone+62/100> > > > Trace; c013fa06 <kswapd_balance_pgdat+66/b0> > > > Trace; c013fa78 <kswapd_balance+28/50> > > > Trace; c013fbce <kswapd+9e/cd> > > > Trace; c0105000 <_stext+0/0> > > > Trace; c01075de <arch_kernel_thread+2e/40> > > > Trace; c013fb30 <kswapd+0/cd> > > > > > > Code; c013de10 <kmem_cache_reap+150/3b0> > > > 00000000 <_EIP>: > > > Code; c013de10 <kmem_cache_reap+150/3b0> <===== > > > 0: 8b 00 mov (%eax),%eax <===== > > > Code; c013de12 <kmem_cache_reap+152/3b0> > > > 2: 47 inc %edi > > > Code; c013de13 <kmem_cache_reap+153/3b0> > > > 3: 39 e8 cmp %ebp,%eax > > > Code; c013de15 <kmem_cache_reap+155/3b0> > > > 5: 75 f9 jne 0 <_EIP> > > > Code; c013de17 <kmem_cache_reap+157/3b0> > > > 7: 8b 73 2c mov 0x2c(%ebx),%esi > > > Code; c013de1a <kmem_cache_reap+15a/3b0> > > > a: 89 fa mov %edi,%edx > > > Code; c013de1c <kmem_cache_reap+15c/3b0> > > > c: 89 f1 mov %esi,%ecx > > > Code; c013de1e <kmem_cache_reap+15e/3b0> > > > e: d3 e2 shl %cl,%edx > > > Code; c013de20 <kmem_cache_reap+160/3b0> > > > 10: 8b 4b 4c mov 0x4c(%ebx),%ecx > > > Code; c013de23 <kmem_cache_reap+163/3b0> > > > 13: 85 00 test %eax,(%eax) > > 次に、Linuxカーネルのソースコードを検索すると、該当する関数は > mm/slab.c > > > にあり、その部分を抜き出すと以下の1710:というラベルが付いている場所に > > > なります。 > > > > > > この「mov (%eax),%eax 」という命令は%eaxに入っている値のアドレスの値を > > > 読み出して、それを%eaxに代入するという意味になります。%eaxに0が入って > > > いたためNULLポインタアクセスとなってフォルトが発生したわけですが、その > > > 値がどこから来たのかを上に辿ると16cfc:の「mov 0x10(%ebx),%eax」からと > > > なります。「mov 0x10(%ebx),%eax」は%ebxに0x10を足したアドレスにある値 > > > を%eax に代入するという意味になります。先のOOPSのロクから%ebxは > > > 0x0c282ddb8ということが判っていますから、0x10(%ebx)は0x0c282ddc8となり > > > ます。 |
(0003045) daisuke (管理者) 2006-07-29 01:17 |
現象を再現させることができませんでした。 |
(0003046) daisuke (管理者) 2006-07-29 01:22 |
> 現象を再現させることができませんでした。 状態を 再現せず に変更しました |
課題の履歴 | |||
変更日 | ユーザー名 | 項目 | 変更内容 |
2006-06-15 09:32 | anonymous | 新規課題 | |
2006-06-23 18:02 | anonymous | コメント追加: 0003044 | |
2006-07-29 01:17 | daisuke | 状態 | 新規 => 要追加情報 |
2006-07-29 01:17 | daisuke | 解決状況 | 不明 => 再現不可 |
2006-07-29 01:17 | daisuke | コメント追加: 0003045 | |
2006-07-29 01:22 | daisuke | 状態 | 要追加情報 => 完了 |
2006-07-29 01:22 | daisuke | コメント追加: 0003046 |
Copyright © 2000 - 2024 MantisBT Team Copyright © 2012 - 2024 Project Vine |