[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] help on debugging kernel module in Xen


  • To: ushuanglily@xxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: "Lily Huang" <ushuanglily@xxxxxxxxx>
  • Date: Fri, 12 Jan 2007 18:20:54 -0500
  • Delivery-date: Fri, 12 Jan 2007 15:20:40 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=fRshjuEeidvVrgOmUg3mQ0jj1w8DF5oOUAomyy/sTGKaaNDcoX255/gXE/xrGMQZpZLNJfneoOWEL42I6qVhGKEgg1dq0Y90D5hIEVjIH4FXWeM3sb0aKOwf6lArNmuuJQv5rZ1iIeDKTNpvdBVUAS7+qsifZwjXUPbw7VSSw+E=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Sorry, please skip my last question. I fixed the problem myself.

The problem occurred because I failed to run "add-symbol-file" command. Somehow gdb failed to recognize the strtab and symtab sections.

After I removed them, it works now.

Again, thanks for your help!

lily

On 1/12/07, Lily Huang <ushuanglily@xxxxxxxxx > wrote:
That's a great point. I just disabled the "Detect Soft Lockup" option in the "kernel hacking" group. Now the soft lockup disappeared and I can debug kernel now.

Next, I tried to debug kernel module in domU. New problem occurs.

After I set "br xxx(function in a loaded kernel module" and then "cont", I worked in the domu to activate the breakpoint.

Unfortunately, I found domU immediately print error messages:

/**********************************************************/
Message from syslogd@normal at Fri Jan 12 17:54:41 2007 ...
normal kernel: int3: 0000 [#1]   <----------------------------------------------------- seems to be a problem

Message from syslogd@normal at Fri Jan 12 17:54:41 2007 ...
normal kernel: SMP

Message from syslogd@normal at Fri Jan 12 17:54:41 2007 ...
normal kernel: CPU:    0

Message from syslogd@normal at Fri Jan 12 17:54:41 2007 ...
normal kernel: EIP is at nfs3_proc_readdir+0xd/0x100 [nfs]

Message from syslogd@normal at Fri Jan 12 17:54:41 2007 ...
normal kernel: eax: daa0c740   ebx: 00001000   ecx: c1353aa0   edx: db25cd14

Message from syslogd@normal at Fri Jan 12 17:54:41 2007 ...
normal kernel: esi: df02ced0   edi: daa0885c   ebp: da9c7d34   esp: da9c7c4c

Message from syslogd@normal at Fri Jan 12 17:54:41 2007 ...
normal kernel: ds: 007b   es: 007b   ss: 0069

Message from syslogd@normal at Fri Jan 12 17:54:41 2007 ...
normal kernel: Process ls (pid: 1670, threadinfo=da9c6000 task=c05d7070)
/**********************************************************/

Looks like "int 3" triggered kernel error. Why just for kernel module debugging?


BTW: I built the kernel moduel with "-g" option and use gdb command to load module symbols

/*************************************************/
add-symbol-file /path/to/module.ko 0xdf01f000 \
        -s .altinstr_replacement 0xdf036629 \
        -s .altinstructions 0xdf03add0 \
        -s .bss 0xdf042a60 \
        -s .data 0xdf041a20 \
        -s .exit.text 0xdf0365f0 \
        -s .gnu.linkonce.this_module 0xdf042840 \
        -s .init.text 0xdf045000 \
        -s .rodata 0xdf036680 \
        -s .rodata.str1.1 0xdf039ef4 \
        -s .rodata.str1.4 0xdf036cb8 \
        -s .strtab 0xdf03e450 \
        -s .symtab 0xdf03aec0
/*************************************************/

Thanks,
lily

On 1/12/07, Brendan Cully < brendan@xxxxxxxxx> wrote:
On Friday, 12 January 2007 at 16:32, Lily Huang wrote:
> Hi Brendan,
>
> You are right. After I lift the breakpoint a little bit (to sys_open), the
> breakpoint works.
>
> But now the domU kept complaining after I did "target remote 127.0.0.1:9999"
> and then "br sys_open":
>
> /************************************************?
> BUG: soft lockup detected on CPU#0!
>
> Pid: 0, comm:              swapper
> EIP: 0061:[<c01013a7>] CPU: 0
> EIP is at 0xc01013a7
> EFLAGS: 00000346    Not tainted  (2.6.16.33-xenU #12)
> EAX: 00000000 EBX: 00000001 ECX: 00000000 EDX: 00000000
> ESI: 00000001 EDI: c0354000 EBP: c0355f84 DS: 007b ES: 007b
> CR0: 8005003b CR2: b7f77000 CR3: 1d633000 CR4: 00000640
> [<c0105bb3>] show_trace+0x13/0x20
> [<c0103390>] show_regs+0x190/0x1e0
> [<c013cf48>] softlockup_tick+0x88/0xa0
> [<c0126d45>] do_timer+0x215/0x440
> [<c010858c>] timer_interrupt+0x1bc/0x6a0
> [<c013d09f>] handle_IRQ_event+0x3f/0xd0
> [<c013d1be>] __do_IRQ+0x8e/0xf0
> [<c0106efd>] do_IRQ+0x1d/0x30
> [<c025d2d1>] evtchn_do_upcall+0xa1/0xe0
> [<c0105309>] hypervisor_callback+0x3d/0x48
> [<c01039df>] xen_idle+0x2f/0x60
> [<c0103a82>] cpu_idle+0x72/0xc0
> [<c0102035>] rest_init+0x35/0x40
> [<c035656a>] start_kernel+0x2ea/0x3a0
> [<c010006f>] 0xc010006f
>
> /********************************************************/
>
> What's wrong? Looks like I am really doomed to run into so many weird
> problems. :(

soft lockup gets triggered when the kernel hasn't gotten a timer
interrupt in a while. This tends to happen frequently when the kernel
is being debugged. I think there's a kernel config option to turn this
off, or you can just live with the messages.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.