Messages in this thread | | | Date | Tue, 14 Apr 2009 00:24:51 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH] slow_work_thread() should do the exclusive wait |
| |
On 04/13, Trond Myklebust wrote: > > On Mon, 2009-04-13 at 23:48 +0200, Oleg Nesterov wrote: > > On 04/13, David Howells wrote: > > > > > > Trond Myklebust <Trond.Myklebust@netapp.com> wrote: > > > > > > > Should that really be TASK_INTERRUPTIBLE? I don't see anything obvious > > > > in the enclosing for(;;) loop that checks for or handles signals... > > > > > > If it were TASK_UNINTERRUPTIBLE, it would sit there in the D-state when not > > > doing anything. I must admit, I thought I was calling daemonize(), but that > > > seems to have got lost somewhere. > > > > daemonize() is not needed, kthread_create() creates the kernel thread which > > ignores all signals. So it doesn't matter which state we use to sleep, > > TASK_INTERRUPTIBLE or TASK_UNINTERRUPTIBLE. > > Yes, but that is precisely why it is cleaner to use > TASK_UNINTERRUPTIBLE. It documents the fact that signal handling isn't > needed (whether or not the thread is blocking them).
Agreed. But TASK_UNINTERRUPTIBLE can confuse a user which does "cat /proc/loadavg" on the idle machine...
Note that, for example, worker_thread() uses TASK_INTERRUPTIBLE too, and I think for the same reason.
I dunno.
Oleg.
| |