kernel oops

Michal Frič Michal.Fric na i.cz
Úterý Říjen 31 16:47:55 CET 2000


Zdravim

Kolega ma problem se serverem (Intel Pentium PRO 200MHz, 64MB RAM, 1 x
Ethernet AMD, 1 x TokenRing IBM 4/16, SCSI 2940) po reinstalaci (byl tam
stary Slackware) na RH 6.2 mu oopsuje kernel. Frekvence oopsu je
nepravidelna muze to byt nekolikrat za den, ale nekdy vydrzi bezet az
ctyri dny. Stejne tak situace kdy k oops dojde je ruzna napr. k
poslednimu oopsnuti doslo po spusteni vi. 
Zkousel ruzne verze kernelu v ruznych konfiguracich (ted testuje
posledni 2.4.0) a pro jistotu vymenil pameti, bohuzel problem stale
trva.

Prikladam vypis oopsu po zpracovani ksymoops (podle README k teto
utilitce vytvoreny pres:
ksymoops -VMO -k /proc/ksyms -dd <oops.file >/tmp/ksymoops.log 2>&1)
Je to ponekud delsi omlouvam se dial-upistum.

Predem dekuji za veskere napady a namety.

Michal Fric


DEBUG (main): level 2
DEBUG (read_env): default KSYMOOPS_NM=/usr/bin/nm
DEBUG (read_env): default KSYMOOPS_FIND=/usr/bin/find
DEBUG (read_env): default KSYMOOPS_OBJDUMP=/usr/bin/objdump
DEBUG (re_compile): '^([0-9a-fA-F]{4,}) +([^ ]) +([^ ]+)$' 3 sub
expression(s)
DEBUG (re_compile): '^ *\[*<([0-9a-fA-F]{4,})>\]* *' 1 sub expression(s)
DEBUG (re_compile): '^ *<\[([0-9a-fA-F]{4,})\]> *' 1 sub expression(s)
DEBUG (re_compile): '^ *([0-9a-fA-F]{4,}) *' 1 sub expression(s)
DEBUG (read_ksyms): /proc/ksyms
DEBUG (re_compile): '^([0-9a-fA-F]{4,}) +([^ ]+)( +\[([^ ]+)\])?$' 4 sub
expression(s)
DEBUG (re_compile): '^(.*)_R(smp_)?[0-9a-fA-F]{8,}$' 2 sub expression(s)
DEBUG (re_compile):
'^(__insmod_.*)(_O(.*)_M([0-9a-fA-F]+)_V(-?[0-9]+)|_S(.*)_L([0-9]+))' 7
sub expression(s)
DEBUG (add_Version): ibmtr 131600 2.2.16
DEBUG (ss_sort_na): ibmtr
DEBUG (ss_compress): table ibmtr, before 22
DEBUG (ss_compress): table ibmtr, after 22
DEBUG (ss_compress): table ibmtr, before 22
DEBUG (ss_compress): table ibmtr, after 22
DEBUG (ss_sort_na): ksyms_base
DEBUG (ss_compress): table ksyms_base, before 733
DEBUG (ss_compress): table ksyms_base, after 733
DEBUG (ss_compress): table ksyms_base, before 733
DEBUG (ss_compress): table ksyms_base, after 733
DEBUG (read_ksyms): ibmtr used 22 out of 30 entries
DEBUG (read_ksyms): ksyms_base used 733 out of 751 entries
DEBUG (expand_objects): using /lib/modules/2.2.16/net/ibmtr.o for ibmtr
DEBUG (expand_objects): all ksyms modules map to specific object files
DEBUG (read_nm_symbols): command '/usr/bin/nm
/lib/modules/2.2.16/net/ibmtr.o'
DEBUG (read_nm_symbols): /lib/modules/2.2.16/net/ibmtr.o used 42 out of
50 entries
DEBUG (ss_sort_na): /lib/modules/2.2.16/net/ibmtr.o
DEBUG (ss_compress): table /lib/modules/2.2.16/net/ibmtr.o, before 42
DEBUG (ss_compress): table /lib/modules/2.2.16/net/ibmtr.o, after 42
DEBUG (ss_compress): table /lib/modules/2.2.16/net/ibmtr.o, before 42
DEBUG (ss_compress): table /lib/modules/2.2.16/net/ibmtr.o, after 42
DEBUG (read_lsmod): /proc/modules
DEBUG (re_compile): '^ *([^ ]+) *([^ ]+) *([^ ]+) *(.*)$' 4 sub
expression(s)
DEBUG (ss_sort_na): lsmod
DEBUG (ss_compress): table lsmod, before 1
DEBUG (ss_compress): table lsmod, after 1
DEBUG (ss_compress): table lsmod, before 1
DEBUG (ss_compress): table lsmod, after 1
DEBUG (read_lsmod): lsmod used 1 out of 10 entries
DEBUG (merge_maps):
DEBUG (ss_sort_na): Version_
DEBUG (ss_compress): table Version_, before 1
DEBUG (ss_compress): table Version_, after 1
DEBUG (ss_compress): table Version_, before 1
DEBUG (ss_compress): table Version_, after 1
DEBUG (compare_Version): Version 2.2.16
DEBUG (map_ksyms_to_modules): ksyms ibmtr matches to
/lib/modules/2.2.16/net/ibmtr.o based on modutils assist
DEBUG (adjust_object_offsets): ibmtr c481204c c48159ac c4814a80
DEBUG (compare_maps): ibmtr vs /lib/modules/2.2.16/net/ibmtr.o, ibmtr
takes precedence
DEBUG (append_map): ksyms_base to merged
DEBUG (append_map): /lib/modules/2.2.16/net/ibmtr.o to merged [ibmtr]
DEBUG (ss_sort_atn): merged
DEBUG (ss_compress): table merged, before 788
DEBUG (ss_compress): table merged, after 788
DEBUG (ss_sort_atn): merged
DEBUG (ss_compress): table merged, before 788
DEBUG (ss_compress): table merged, after 782
DEBUG (find_fullpath): /usr/bin/ksymoops
DEBUG (re_compile): '^( +|[^ ]{3} [ 0-9][0-9] [0-9]{2}:[0-9]{2}:[0-9]{2}
[^ ]+ kernel: +|<[0-9]+>)' 1 sub expression(s)
DEBUG (re_compile): '^((Stack: )|(Stack from )|([0-9a-fA-F]{4,})|(Call
Trace: )|(\[*<([0-9a-fA-F]{4,})>\]* *)|(Version_[0-9]+)|(Trace: )|(Call
backtrace:)|(bh:)|<\[([0-9a-fA-F]{4,})\]> *|Process .*stackpage=|Code *:
|Kernel panic|In swapper task|Corrupted stack page|invalid operand:
|Oops: |Cpu: +[0-9]|current->tss|\*pde +=|EIP: |EFLAGS: |eax: |esi: |ds:
|CR0: |wait_on_|irq: |pc[:=]|68060 access|Exception at |d[04]: |Frame
format=|wb [0-9] stat|push data: |baddr=|Arithmetic fault|Instruction
fault|Bad unaligned kernel|Forwarding unaligned exception|: unhandled
unaligned exception|pc *=|r[0-9]+ *=|gp *=|spinlock stuck|tsk->|PSR:
|[goli]0: |Instruction DUMP: |TSTATE: |[goli]4: |Caller\[|CPU\[|MSR:
|TASK = |last math |GPR[0-9]+: |\$[0-9 ]+:|epc |Status:|Cause
:|Backtrace:|Function entered at|\*pgd =|Internal error|pc :|sp
:|r[0-9][0-9 ]:|Flags:|Control:)' 12 sub expression(s)
DEBUG (re_compile): 'Unable to handle
kernel|Aiee|die_if_kernel|\([0-9]\): Oops |: memory violation|:
Exception at|: Arithmetic fault|: Instruction fault|: arithmetic trap|:
unaligned trap|\([0-9]+\): (Whee|Oops|Kernel|.*Penguin|BOGUS)|kernel pc
|trap at PC: |bad area pc |NIP: | ra *=' 1 sub expression(s)
DEBUG (re_compile): '^(i[04]: |Instruction DUMP: |Caller\[)' 1 sub
expression(s)
Unable to handle kernel paging request at virtual address 0d2b2b80
DEBUG (re_compile): '^PSR: [0-9a-fA-F]+ PC: ([0-9a-fA-F]{4,}) *' 1 sub
expression(s)
DEBUG (re_compile): '^TSTATE: [0-9a-fA-F]{16} TPC: ([0-9a-fA-F]{4,}) *'
1 sub expression(s)
DEBUG (re_compile): '(kernel pc |trap at PC: |bad area pc |NIP:
)([0-9a-fA-F]{4,}) *' 2 sub expression(s)
DEBUG (re_compile): '^epc *:+ *([0-9a-fA-F]{4,}) *' 1 sub expression(s)
DEBUG (re_compile): '^(EIP: +.*|PC *= *|pc *:
*)\[*<([0-9a-fA-F]{4,})>\]* *' 2 sub expression(s)
DEBUG (re_compile): '^spinlock stuck at ([0-9a-fA-F]{4,}) *.*owner.*at
([0-9a-fA-F]{4,}) *' 2 sub expression(s)
DEBUG (re_compile): 'ra *=+ *([0-9a-fA-F]{4,}) *' 1 sub expression(s)
DEBUG (re_compile): '^[io][04]: [0-9a-fA-F iosp:]+ ([io]7|ret_pc):
([0-9a-fA-F]{4,}) *' 2 sub expression(s)
DEBUG (re_compile): '^((Call Trace: )|(Trace:
)|(\[*<([0-9a-fA-F]{4,})>\]* *)|(Call backtrace:)|([0-9a-fA-F]{4,})
*|Function entered at (\[*<([0-9a-fA-F]{4,})>\]*
*)|Caller\[([0-9a-fA-F]{4,}) *\]|(<\[([0-9a-fA-F]{4,})\]> *))' 12 sub
expression(s)
DEBUG (re_compile): '^((Instruction DUMP)|(Code *)): +((general
protection.*)|(<[0-9]+>)|(([<(]?[0-9a-fA-F]+[>)]?
+)+[<(]?[0-9a-fA-F]+[>)]?))(.*)$' 9 sub expression(s)
current->tss.cr3 = 02e07000, %cr3 = 02e07000
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0010:[<c012d71d>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010206
eax: c3ff6c00   ebx: 00000000   ecx: c2cc2000   edx: 0d2b2b74
esi: 00000001   edi: 00000000   ebp: 00000000   esp: c2cc3f40
ds: 0018   es: 0018   ss: 0018
Process vi (pid: 686, process nr: 38, stackpage=c2cc3000)
Stack: c0fb11f8 00000020 00000145 00000000 c2cc2000 7fffffff 00000000
c3725000
       c012dc0a 00000001 c2cc3fa8 c2cc3fa4 c2cc2000 bffff6fc 00000000
bffff7fc
       c0fb11ec c301d7ac 00000004 00000001 00000001 c2cc3fa8 00000001
c2cc2000
Call Trace: [<c012dc0a>] [<c0108fc0>]
Code: 8b 42 0c 85 c0 74 16 8b 40 10 85 c0 74 0f 8b 4c 24 20 51 52
DEBUG (Oops_decode):
DEBUG (re_compile): '^([<(]?)([0-9a-fA-F]+)[)>]? *' 2 sub expression(s)
DEBUG (Oops_objdump): command '/usr/bin/objdump -dhf /tmp/fileFOXC1D'
DEBUG (Oops_decode):
DEBUG (re_compile): '^ *([0-9a-fA-F]+)( <_XXX[^>]*>)?:(.*
+<_XXX\+0?x?([0-9a-fA-F]+)> *$)?.*' 4 sub expression(s)
DEBUG (Oops_decode): /tmp/fileFOXC1D:     file format elf32-i386
DEBUG (Oops_decode): architecture: i386, flags 0x00000010:
DEBUG (Oops_decode): HAS_SYMS
DEBUG (Oops_decode): start address 0x00000000
DEBUG (Oops_decode):
DEBUG (Oops_decode): Sections:
DEBUG (Oops_decode): Idx Name          Size      VMA       LMA      
File off  Algn
DEBUG (Oops_decode):   0 .text         00000040  00000000  00000000 
00000040  2**4
DEBUG (Oops_decode):                   CONTENTS, ALLOC, LOAD, READONLY,
CODE
DEBUG (Oops_decode): Disassembly of section .text:
DEBUG (Oops_decode):
DEBUG (Oops_decode): 00000000 <_XXX>:
DEBUG (Oops_decode):    0:   8b 42 0c                  mov   
0xc(%edx),%eax
DEBUG (Oops_decode):    3:   85 c0                     test   %eax,%eax
DEBUG (Oops_decode):    5:   74 16                     je     1d
<_XXX+0x1d>
DEBUG (Oops_decode):    7:   8b 40 10                  mov   
0x10(%eax),%eax
DEBUG (Oops_decode):    a:   85 c0                     test   %eax,%eax
DEBUG (Oops_decode):    c:   74 0f                     je     1d
<_XXX+0x1d>
DEBUG (Oops_decode):    e:   8b 4c 24 20               mov   
0x20(%esp,1),%ecx
DEBUG (Oops_decode):   12:   51                        push   %ecx
DEBUG (Oops_decode):   13:   52                        push   %edx
DEBUG (Oops_decode):         ...
DEBUG (Oops_format):

>>EIP; c012d71d <__pollwait+229/d90>   <=====
Trace; c012dc0a <__pollwait+716/d90>
Trace; c0108fc0 <dump_thread+128c/2338>
Code;  c012d71d <__pollwait+229/d90>
00000000 <_EIP>:
Code;  c012d71d <__pollwait+229/d90>   <=====
   0:   8b 42 0c                  mov    0xc(%edx),%eax   <=====
Code;  c012d720 <__pollwait+22c/d90>
   3:   85 c0                     test   %eax,%eax
Code;  c012d722 <__pollwait+22e/d90>
   5:   74 16                     je     1d <_EIP+0x1d> c012d73a
<__pollwait+246/d90>
Code;  c012d724 <__pollwait+230/d90>
   7:   8b 40 10                  mov    0x10(%eax),%eax
Code;  c012d727 <__pollwait+233/d90>
   a:   85 c0                     test   %eax,%eax
Code;  c012d729 <__pollwait+235/d90>
   c:   74 0f                     je     1d <_EIP+0x1d> c012d73a
<__pollwait+246/d90>
Code;  c012d72b <__pollwait+237/d90>
   e:   8b 4c 24 20               mov    0x20(%esp,1),%ecx
Code;  c012d72f <__pollwait+23b/d90>
  12:   51                        push   %ecx
Code;  c012d730 <__pollwait+23c/d90>
  13:   52                        push   %edx

Unable to handle kernel paging request at virtual address 0d2b2b7c
current->tss.cr3 = 00101000, %cr3 = 00101000
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0010:[<c012419f>]
EFLAGS: 00010206
eax: c3ff6c00   ebx: 0d2b2b74   ecx: 00000000   edx: 0d2b2b74
esi: 00000000   edi: c21d9820   ebp: 00000001   esp: c2cc3e8c
ds: 0018   es: 0018   ss: 0018
Process vi (pid: 686, process nr: 38, stackpage=c2cc3000)
Stack: c21d9820 c01167d9 0d2b2b74 c21d9820 c2cc3f04 c2cc2000 0d2b2b80
40000000
       00000000 c2cc2000 c01094d8 0000000b c2cc3f04 c01d20c7 c01d386e
00000000
       00000000 c010e4e4 c01d386e c2cc3f04 00000000 c2cc2000 00000001
00000000
Call Trace: [<c01167d9>] [<c01094d8>] [<c01d20c7>] [<c01d386e>]
[<c010e4e4>] [<c01d386e>] [<c01090d1>]
       [<c012d71d>] [<c012dc0a>] [<c0108fc0>]
Code: 8b 7b 08 83 7b 1c 00 75 10 68 02 61 1d c0 e8 fe ed fe ff 31
DEBUG (Oops_decode):
DEBUG (Oops_objdump): command '/usr/bin/objdump -dhf /tmp/files0hARj'
DEBUG (Oops_decode):
DEBUG (Oops_decode): /tmp/files0hARj:     file format elf32-i386
DEBUG (Oops_decode): architecture: i386, flags 0x00000010:
DEBUG (Oops_decode): HAS_SYMS
DEBUG (Oops_decode): start address 0x00000000
DEBUG (Oops_decode):
DEBUG (Oops_decode): Sections:
DEBUG (Oops_decode): Idx Name          Size      VMA       LMA      
File off  Algn
DEBUG (Oops_decode):   0 .text         00000040  00000000  00000000 
00000040  2**4
DEBUG (Oops_decode):                   CONTENTS, ALLOC, LOAD, READONLY,
CODE
DEBUG (Oops_decode): Disassembly of section .text:
DEBUG (Oops_decode):
DEBUG (Oops_decode): 00000000 <_XXX>:
DEBUG (Oops_decode):    0:   8b 7b 08                  mov   
0x8(%ebx),%edi
DEBUG (Oops_decode):    3:   83 7b 1c 00               cmpl  
$0x0,0x1c(%ebx)
DEBUG (Oops_decode):    7:   75 10                     jne    19
<_XXX+0x19>
DEBUG (Oops_decode):    9:   68 02 61 1d c0            push  
$0xc01d6102
DEBUG (Oops_decode):    e:   e8 fe ed fe ff            call   fffeee11
<_XXX+0xfffeee11>
DEBUG (Oops_decode):   13:   31 00                     xor   
%eax,(%eax)
DEBUG (Oops_decode):         ...
DEBUG (Oops_format):

>>EIP; c012419f <filp_close+7/5c>   <=====
Trace; c01167d9 <exit_mm+35d/c68>
Trace; c01094d8 <dump_thread+17a4/2338>
Trace; c01d20c7 <sprintf+27f3/1738c>
Trace; c01d386e <sprintf+3f9a/1738c>
Trace; c010e4e4 <__verify_write+428/764>
Trace; c01d386e <sprintf+3f9a/1738c>
Trace; c01090d1 <dump_thread+139d/2338>
Trace; c012d71d <__pollwait+229/d90>
Trace; c012dc0a <__pollwait+716/d90>
Trace; c0108fc0 <dump_thread+128c/2338>
Code;  c012419f <filp_close+7/5c>
00000000 <_EIP>:
Code;  c012419f <filp_close+7/5c>   <=====
   0:   8b 7b 08                  mov    0x8(%ebx),%edi   <=====
Code;  c01241a2 <filp_close+a/5c>
   3:   83 7b 1c 00               cmpl   $0x0,0x1c(%ebx)
Code;  c01241a6 <filp_close+e/5c>
   7:   75 10                     jne    19 <_EIP+0x19> c01241b8
<filp_close+20/5c>
Code;  c01241a8 <filp_close+10/5c>
   9:   68 02 61 1d c0            push   $0xc01d6102
Code;  c01241ad <filp_close+15/5c>
   e:   e8 fe ed fe ff            call   fffeee11 <_EIP+0xfffeee11>
c0112fb0 <printk+0/16c>
Code;  c01241b2 <filp_close+1a/5c>
  13:   31 00                     xor    %eax,(%eax)


Další informace o konferenci Linux