Next-in-Thread Next Message

Question Problems with kernel debugging with ikd 

Forum: PCMCIA driver development
Date: 2000, Apr 27
From: Janne Salmi janski

Hello,

I am trying to use ikd kernel debugger in a laptop with the PCMCIA package installed. Is this possible at all? I have tried kernel 2.2.13 with pcmcia-cs 3.1.9 and 3.1.13 and kernel 2.2.14 with pcmcia-cs 3.1.14.

So far, I can load ds.o i82365.o and pcmcia_core.o with no problem. When I insert a card, I get dropped in the debugger:

<4>Entering kdb due to panic @ 0xc0113d8d
<4>eax = 0xc3efba90  ebx = 0x000051e6  ecx = 0x00000000  edx = 0x00000001
<4>esi = 0xc3efba8c  edi = 0x00000004  esp = 0x00000000  eip = 0xc0113d8d
<4>ebp = 0xc0239ec0   ss = 0x00000004   cs = 0x00000010  eflags = 0x00010217
<4> ds = 0x00000018   es = 0x00000018  origeax = 0xffffffff  &regs = 0xc0239e80
<4>kdb>     EBP       EIP         Function(args)
<4>0xc0239ec0 0xc0113d8d  __wake_up+0x1d( 0xc3efba90, 0x4, 0x0, 0xc0239ee4, 0xc)
<4>0xc0239ed4 0xc4823384  unregister_pccard_driver+0x1ec( 0xc3b15bf0, 0x4, 0xc0)
<4>0xc0239ee4 0xc4823488  unregister_pccard_driver+0x2f0( 0x4)
<4>0xc0239f04 0xc480c6fe  unregister_ss_entry+0x4c2( 0xc3cc4800)
<4>0xc0239f24 0xc480c652  unregister_ss_entry+0x416( 0x0)
<4>0xc0239f48 0xc0114a2d  timer_bh+0x32d( )
<4>0xc0239f58 0xc011ba09  do_bottom_half+0x49( )
<4>0xc0239f78 0xc0113ccc  schedule+0x1dc( )
<4>0xc0239f84 0xc0108469  hard_idle+0x49( 0xc0238000, 0x98800, 0xc0106000)
<4>0xc0239f98 0xc01084bd  cpu_idle+0x18ad( 0x0)
<4>0xc0239fa4 0xc0108507  sys_idle+0x17( 0x0, 0x0, 0x1, 0x98800, 0xc0106000)
<4>0xc0239fe0 0xc0109df4  system_call+0x34( 0x0)
<4>0xc0239ff8 0xc0106dca  start_kernel+0x19a( 0x0, 0xc021f778, 0xc02201bc, 0x0,)
<4>0x0 0xc0100176  L6

If I continue, I get the following Oops:

<4>kdb> Oops: 0000
<4>CPU:    0
<4>EIP:    0010:[<c0113d8d>]
<4>EFLAGS: 00010217
<4>eax: c3efba90   ebx: 000051e6   ecx: 00000000   edx: 00000001
<4>esi: c3efba8c   edi: 00000004   ebp: c0239ec0   esp: c0239ebc
<4>ds: 0018   es: 0018   ss: 0018
<4>Process swapper (pid: 0, process nr: 0, stackpage=c0239000)
<4>Stack: c3b15bf0 c0239ed4 c4823384 c3efba90 00000004 00000000 c0239ee4 c48234
<4>       c3b15bf0 00000004 c0239f04 c480c6fe 00000004 00000000 c3efbacc c3cc48
<4>       00000000 00000075 c0239f24 c480c652 c3cc4800 00000004 00000000 000000
<4>Call Trace: [<c4823384>] (0) [<c4823488>] (20) [<c480c6fe>] (16) [<c480c652>
<4>       [<c0108469>] (32) [<c01084bd>] (12) [<c0108507>] (20) [<c0109df4>] (1
<4>Code: 8b 13 8b 5b 04 8b 02 85 c7 74 f1 39 f3 74 0b 52 e8 0e f9 ff
<4>Aiee, killing interrupt handler
<0>Kernel panic: Attempted to kill the idle task!      
<0>In swapper task - not syncing

This happens with a WaveLAN IEEE802.11 card and 3COM 3CCFE574BT ethernet card. If I don't have the ikd patch installed, this does not happen.

I get the same panic if try to use the PCMCIA package with a patch of my own that adds a simple character device driver, but it happens more randomly. It seems the problem is with wait_queue handling, but is the problem in ds.c or both in my code and ikd? It seems that ds.c initializes its wait_queue to NULL, so does my code. Any ideas? Just in case the ksymoops output is of any help, I'll include it below.

Any hints would be appreciated.

ksymoops output follows:

Warning in compare_ksyms_lsmod, module i82365 is in lsmod but not in ksyms, probably no symbols exported
Oops: 0000
CPU:    0
EIP:    0010:[<c0113d8d>]
EFLAGS: 00010217
eax: c3efba90   ebx: 000051e6   ecx: 00000000   edx: 00000001
esi: c3efba8c   edi: 00000004   ebp: c0239ec0   esp: c0239ebc
ds: 0018   es: 0018   ss: 0018
Process swapper (pid: 0, process nr: 0, stackpage=c0239000)
Stack: c3b15bf0 c0239ed4 c4823384 c3efba90 00000004 00000000 c0239ee4 c4823488
       c3b15bf0 00000004 c0239f04 c480c6fe 00000004 00000000 c3efbacc c3cc4800
       00000000 00000075 c0239f24 c480c652 c3cc4800 00000004 00000000 00000000
Call Trace: [<c4823384>] (0) [<c4823488>] (20) [<c480c6fe>] (16) [<c480c652>] (
       [<c0108469>] (32) [<c01084bd>] (12) [<c0108507>] (20) [<c0109df4>] (12)
Code: 8b 13 8b 5b 04 8b 02 85 c7 74 f1 39 f3 74 0b 52 e8 0e f9 ff

>>EIP: c0113d8d <__wake_up+1d/50>

Trace: c4823384 <handle_event+34/3c>
Trace: c0108469 <hard_idle+49/60>
Code: c0113d8d <__wake_up+1d/50> 00000000 <_EIP>: <=== Code: c0113d8d <__wake_up+1d/50> 0: 8b 13 movl (%ebx),%edx <=== Code: c0113d8f <__wake_up+1f/50> 2: 8b 5b 04 movl 0x4(%ebx),%ebx Code: c0113d92 <__wake_up+22/50> 5: 8b 02 movl (%edx),%eax Code: c0113d94 <__wake_up+24/50> 7: 85 c7 testl %eax,%edi Code: c0113d96 <__wake_up+26/50> 9: 74 f1 je c0113d89 <__wake_up+19/50> Code: c0113d98 <__wake_up+28/50> b: 39 f3 cmpl %esi,%ebx Code: c0113d9a <__wake_up+2a/50> d: 74 0b je c0113da7 <__wake_up+37/50> Code: c0113d9c <__wake_up+2c/50> f: 52 pushl %edx Code: c0113d9d <__wake_up+2d/50> 10: e8 0e f9 ff 00 call c11136b0 <_end+eba27c/45b2c1c>

Aiee, killing interrupt handler Kernel panic: Attempted to kill the idle task! In swapper task - not syncing

Next-in-Thread Next Message

Messages Inline: 1 All Outline: 1 2 All

1. None I have not tried it recently, but it should work by David Hinds, 2000, Apr 27
(_ None Re: I have not tried it recently, but it should work by Janne Salmi, 2000, Apr 28

Add Message to: "Problems with kernel debugging with ikd"

Members Subscribe Admin Mode Show Frames Help for HyperNews at pcmcia-cs.sourceforge.net 1.10