lkml.org 
[lkml]   [2006]   [May]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Oops in kthread
Hi Balbir,

The FDMA is my coded module. And in my code, I didn't call kthread in
my code but only call kthread_run once to create one kernel thread
CallbackManager.

So I don't understand why there is Oops from kthread and called by my
CallbackManager.

Can anybody explain to me when kthread will be called by the kernel?
Then I can understand well why Oops happen.

best regards

Liu haixiang

2006/5/20, Balbir Singh <bsingharora@gmail.com>:
> On 5/20/06, Liu haixiang <liu.haixiang@gmail.com> wrote:
> > Hi All,
> >
> > Today I debug one kernel thread created by kthread_run. And after
> > several hours run, there is one Oops coming from kthread. Please see
> > below mesage:
> > ====================
> > Unable to handle kernel NULL pointer dereference at virtual address 00000000
> > pc = 00000000
> > *pde = 00000000
> > Oops: 0000 [#1]
> >
> > Pid : 261, Comm: CallbackManager
> > PC is at 0x0
> > PC : 00000000 SP : 869bbf8c SR : 40008100 TEA : c016db88 Tainted: P
> > R0 : 00000000 R1 : 00000000 R2 : 005770c5 R3 : 40008101
> > R4 : 8b000006 R5 : 00000003 R6 : 07b1ce60 R7 : 00000079
> > R8 : c01c0800 R9 : 07b1ce60 R10 : 00000003 R11 : 00000000
> > R12 : 0000004c R13 : 00000000 R14 : 00000079
> > MACH: 0000025c MACL: 000001c8 GBR : 00000000 PR : c01b514a
> >
>
> Your kernel is Tainted. I do not see a list of loaded modules in the
> oops log. A quick grep through the kernel sources did not reveal any
> routine called "CallbackManager". From the trace CallbackManager
> (which is also the name of the thread) belongs to a module called
> fdma.
>
> Are you writing fdma or do you have the source code for it? If your
> planning to submit fdma to the linux kernel, I would recommend that
> you go through the coding standards for the kernel. I don't think
> CallbackManager is an acceptable naming convention.
>
> > Call trace:
> > [<8442d184>] kthread+0xe4/0x140
> > [<c01b4f80>] CallbackManager+0x0/0x2c0 [fdma]
> > [<8440f4c0>] complete+0x0/0xc0
> > [<8442d080>] kthread_should_stop+0x0/0x20
> > [<84403004>] kernel_thread_helper+0x4/0x20
> >
> > Then I do objdump the kernel/kthread.c. Please see attached dumped
> > contents. And find the offset 0xe4. The assembly line code is:
> > e4: 08 20 tst r0,r0
> >
> > Does anybody can explain to me which C code in kthread create this
> > Oops?Is there any easy way to translate assembly code to C?
> >
>
> Try running objdump -d -l on the object file. It should dump the line
> numbers and the corresponding disassembled assembly code.
>
> > best regards
> >
> > Liu haixiang
> >
> >
> >
>
> Balbir
> Linux Technology Center,
> India Software Labs,
> Bangalore
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-05-21 08:11    [W:0.049 / U:0.136 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site