[Suzaku:01533] Re: エラー表示の解析方法について

mizo email@hidden
2009年 6月 24日 (水) 17:59:32 JST


溝渕です。

菊地 義和 wrote:
> エラーの内容は次のとおりで、rPC,R5,R7の内容は同じです。
>  Registers dump: mode=1
>  r1=C0045BF0, r2=00000000, r3=00000131, r4=C1C6E000
>  r5=00000080, r6=00000020, r7=00000000, r8=C1C6FDFC
>  r9=C2048300, r10=00000000, r11=C0001DA0, r12=8000003E
>  r13=00000000, r14=00000002, r15=C00EE978, r16=00000000
>  r17=00000000, r18=00001000, r19=C1C6FC54, r20=C0018554
>  r21=00000000, r22=C001983C, r23=C0021E20, r24=C07B47A4
>  r25=C0018CFC, r26=00000000, r27=C1C6FD6C, r28=00000002
>  r29=C01BA1B8, r30=00000000, r31=C07B47A4, rPC=C0045BF0
>  ear=00000080, esr=000008F2
> Oops: kernel access of bad area, sig: 11
>  Registers dump: mode=1
>  r1=C0045BF0, r2=00000000, r3=00000131, r4=C1C6E000
>  r5=00000080, r6=00000020, r7=00000000, r8=C1C6FDFC
>  r9=C2048300, r10=00000000, r11=C0001DA0, r12=8000003E
>  r13=00000000, r14=00000002, r15=C00EE978, r16=00000000
>  r17=00000000, r18=00001000, r19=C1C6FC54, r20=C0018554
>  r21=00000000, r22=C001983C, r23=C0021E20, r24=C07B47A4
>  r25=C0018CFC, r26=00000000, r27=C1C6FD6C, r28=00000002
>  r29=C01BA1B8, r30=00000000, r31=C07B47A4, rPC=C0045BF0
>  ear=00000080, esr=000008F2
> Kernel panic - not syncing: Aiee, killing interrupt handler!
> <0>Rebooting in 120 seconds..

lwi r7, r5, 0
でエラーが発生しているのであれば、
r5=00000080
となっているので、0x80番地のデータを読み出そうとしてエラーが発生している
ことになりますね。

void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
から追っていくと、

linux-2.6.x/mm/slab.cの
____cache_alloc()が呼び出している
cpu_cache_get(cachep);
あたりでエラーが発生していることがわかります。

cpu_cache_getの引数cachepは、kmem_cache_alloc()の第1引数に与えられたもの
と同じです。

第一引数には、r5が使用されます。

メールに貼り付けられたコードからは、kmem_cache_alloc()がどこから呼ばれて
いるかがわかりませんが、参考にしてみてください。



suzaku メーリングリストの案内