Re: Kernel module/kthread question

2012-02-01 Thread Dmitry Antipov
On 02/01/2012 04:15 PM, Daniel Lezcano wrote: Yes, but the problem is the same also. Did you try by removing atomic_inc and set nrunnings to nrkthread ? Unfortunately it's still here: Unable to handle kernel paging request at virtual address 7f0a411c pgd = 80004000 [7f0a411c] *pgd=bf163811, *

Re: Kernel module/kthread question

2012-02-01 Thread Dmitry Antipov
On 02/01/2012 04:15 PM, Daniel Lezcano wrote: Yes, but the problem is the same also. Did you try by removing atomic_inc and set nrunnings to nrkthread ? Now I'm trying, and it looks better - but hurts the lockdep validator :-(: BUG: MAX_LOCKDEP_KEYS too low! turning off the locking correctne

Re: Kernel module/kthread question

2012-02-01 Thread Daniel Lezcano
On 02/01/2012 01:08 PM, Dmitry Antipov wrote: On 02/01/2012 03:49 PM, Daniel Lezcano wrote: IMO, you have a race condition with nrunning. What guarantee do you have atomic_dec_and_test is called after atomic_inc ? Nothing (but I believe ~1s is pretty enough for the kernel thread to get woken

Re: Kernel module/kthread question

2012-02-01 Thread Dmitry Antipov
On 02/01/2012 03:49 PM, Daniel Lezcano wrote: IMO, you have a race condition with nrunning. What guarantee do you have atomic_dec_and_test is called after atomic_inc ? Nothing (but I believe ~1s is pretty enough for the kernel thread to get woken up). I also tried to to atomic_inc() at the beg

Re: Kernel module/kthread question

2012-02-01 Thread Daniel Lezcano
On 02/01/2012 12:28 PM, Dmitry Antipov wrote: I'm writing a kernel module which creates a substantial amount of kernel threads. After dropping the real stuff, the module skeleton is: #include #include #include #include #include #include MODULE_LICENSE("GPL"); static int nrthreads = 128;