Re: [PATCH][RFC] kthread abstraction

Dave Hansen (haveblue@us.ibm.com)
Fri, 01 Feb 2002 09:49:22 -0800


Christoph Hellwig wrote:
> On Fri, Feb 01, 2002 at 09:21:12AM -0800, Dave Hansen wrote:
>>Things like nfsd are always holding the BKL, only
>>releasing it on schedule(), and exit. Is there any compelling reason to
>>hold the BKL during times other than during the daemonize() process?
>
> In general there is no reason. If the data the thread accesses is not
> protected by anything but BKL it must hold it - else it seems superflous
> to me.
What do you think about the BKL hold during daemonize()? Can we expand
the use of the task lock to keep the BKL from being held?

/* these all use task_lock(): */
exit_mm(current);
exit_fs(current);
exit_files(current);

/* Is there more locking needed for this? */
current->session = 1;
current->pgrp = 1;
current->tty = NULL;
fs = init_task.fs;
current->fs = fs;

/* This is already safe: */
atomic_inc(&fs->count);
current->files = init_task.files;
atomic_inc(&current->files->count);

-- 
Dave Hansen
haveblue@us.ibm.com

- 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/