Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Sep 2008 10:56:06 +0100
From:      Rui Paulo <rpaulo@FreeBSD.org>
To:        kr Lekha <kr.lekha@gmail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: killing a kthread
Message-ID:  <20080903095605.GB21178@alpha.local>
In-Reply-To: <96b2ec350809030134j73a61369m35395391a1218975@mail.gmail.com>
References:  <96b2ec350809030134j73a61369m35395391a1218975@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Sep 03, 2008 at 09:34:47AM +0100, kr Lekha wrote:
> Hi,
> i wanted to kill a kthread created by my module, There is no actual
> kthread_kill to kill it
> 
> hence I tried to send kill signal to thread
>  psignal(p, SIGTERM);
> psignal(p, SIGKILL);
> killproc(p,"messeage");
> and kthread_suspend()
> 
> Nothing seems to be killing the kthread, I still see it
> [root@ /usr/src]# ps awx -l | grep kernel
>  UID   PID    PPID CPU PRI NI   VSZ   RSS MWCHAN STAT  TT       TIME COMMAND
>   0     1048     1      0     20   0     0       8      ktsusp      DL
> ??     0:00.01 [new_kernel_thread]
> 
> 
> I have noticed that generally if kernel module wanted to kill a thread then
> it calls
> {
>    wakeup(p);
>    msleep(p,0); /*or tsleep*/
> }
> 
> This puts the thread to sleep forever. However kthread_suspend also performs
> same actions.
> Does scheduler take care to killing it?
> 
> I read that after 2 min scheduler wakes up the thread and
> eventually kills it,
> i see the same kthread suspended even after a day
> 
> I would appreciate any thoughts in this reagard.
> Thanks,

When the thread finishes what it's doing, it should call kthread_exit().

Regards,
-- 
Rui Paulo



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080903095605.GB21178>