Re: Crash

kkjoe kkjoe <[email protected]>
Newsgroups gmane.linux.isdn.i4l.user
Message-ID <CA+So++vEhDr0vRPz=2MToC2LT+AL7d43McD6RJhvAPECWsUViw@mail.gmail.com>
it looks like that dsp_Function get called from two different threads.
dsp_core.c - function dsp_function:
1. hh->prim == PH_DEACTIVATE_REQ - ch->recv(ch->peer, skb) - crash occurs
2. hh->prim == PH_DEACTIVATE_CNF - dsp->up->send(dsp->up, skb) returns 0

dsp_function switch enter PH_DEACTIVATE_REQ
dsp_function before ch->recv(ch->peer, skb)
dsp_function: enter
dsp_function switch enter PH_DEACTIVATE_CNF
before dsp->up->send(dsp->up, skb)
valuex: 0
dsp_function after ch->recv(ch->peer, skb) returns: 0
CPU 0 Unable to handle kernel paging request at virtual address c1081088,
epc == c1163fcc, ra == c1163af0
Oops[#1]:

Do you have any idee how to debug any further ?

regard,

2013/5/9 kkjoe kkjoe <[email protected]>

> Yes i have recompiled both, kernel and module with debugging symbols.
> I've add some more printks in dsp_function and got these:
>
> Printk before crash:
>
> dsp_function before skb_queue_purge(&dsp->sendq);
> dsp_function before spin_unlock_irqrestore
> dsp_function before ch->recv(ch->peer, skb)
> dsp_function enter
> dsp_function switch enter PH_DEACTIVATE_CNF
> dsp_function: b_channel is now inactive DSP_C2(0xc10b8000)
> dsp_function exit before dsp->up->send(dsp->up, skb)
> CPU 0 Unable to handle kernel paging request at virtual address c10b8088,
> epc == c10821e8, ra == c10821dc
> Oops[#1]:
>
> Sourcecode:
>
> case (PH_DEACTIVATE_CNF):
>             printk(KERN_DEBUG "dsp_function switch enter
> PH_DEACTIVATE_CNF\n");
>             printk(KERN_DEBUG "%s: b_channel is now inactive %s\n",
>                    __func__, dsp->name);
>         /* bchannel now inactive */
>         spin_lock_irqsave(&dsp_lock, flags);
>         dsp->b_active = 0;
>         dsp->data_pending = 0;
>         dsp_cmx_hardware(dsp->conf, dsp);
>         dsp_rx_off(dsp);
>         spin_unlock_irqrestore(&dsp_lock, flags);
>         hh->prim = DL_RELEASE_CNF;
>         if (dsp->up) {
>             printk(KERN_DEBUG "dsp_function exit before
> dsp->up->send(dsp->up, skb)\n");
>             return dsp->up->send(dsp->up, skb);
>         }
>         break;
>
> It seems that dsp->up->send is last function before crash occurs.
>
> regards,
>
>
> 2013/5/9 Andreas Eversberg <[email protected]>
>
>>  kkjoe kkjoe wrote:
>>
>>  Hello,
>>
>> i have recompiled the kernel and the module and could reproduce the oops.
>>
>> [<c1166438>] dsp_function+0x994/0x1e3c [mISDN_dsp]
>> [<c0059a88>] bchannel_bh+0x130/0x148 [mISDN_core]
>> [<8013dd38>] run_workqueue+0xb4/0x2d0
>> [<8013ed64>] worker_thread+0x94/0x140
>> [<80143a3c>] kthread+0x80/0xa8
>> [<80106010>] kernel_thread_helper+0x10/0x18
>>
>> // Get Symbol offset
>> /mnt/cf0/modules/misdn # cat /sys/module/mISDN_dsp/sections/.init.text
>> 0xc0079000
>>
>> // Load Symbol file
>> /mnt/cf0/modules/misdn # /mnt/cf0/bin/gdb mISDN_dsp.ko
>> GNU gdb 6.8
>> Copyright (C) 2008 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later <
>> http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
>> and "show warranty" for details.
>> This GDB was configured as "mipsel-unknown-linux-gnu"...
>> (gdb) add-symbol-file /mnt/cf0/modules/misdn/mISDN_dsp.o 0xc0079000
>> add symbol table from file "/mnt/cf0/modules/misdn/mISDN_dsp.o" at
>>     .text_addr = 0xc0079000
>> (y or n) y
>> Reading symbols from /mnt/cf0/modules/misdn/mISDN_dsp.o...done.
>> (gdb)
>>
>> // Get source line  - does not work
>> (gdb) b *dsp_function + 0x994
>> Breakpoint 1 at 0x1438
>>  -> I do not get any source line
>> // get start location
>> (gdb) disassemble dsp_function
>> Dump of assembler code for function dsp_function:
>> 0x00000aa4 <dsp_function+0>:    addiu    sp,sp,-88
>>
>> (gdb) b *dsp_function + 0x00001e3c
>> Breakpoint 3 at 0x28e0: file
>> /home/kkjoe/test/test1/mIsdn/mISDN/standalone/drivers/isdn/mISDN/dsp_cmx.c,
>> line 1922.
>>
>>  best regards and thank you very much for your support
>>
>>
>> 2013/5/9 jolly <[email protected]>
>>
>>> kkjoe kkjoe wrote:
>>> > Do i have to rebuild the kernel and the misdn modules with debugging
>>> > information ?
>>>  yes.
>>>
>>
>>  can you try to test some words before and after, like 0x988-0x99f ?
>> area there lines close before and after the crash point? did you re-compile
>> misdn after adding kernel debugging? anyone else an idea how to find that
>> line?
>>
>>
>

_______________________________________________
isdn4linux mailing list
[email protected]
https://www.isdn4linux.de/mailman/listinfo/isdn4linux
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.