A week ago, I posted this: http://groups.google.com/groups?selm=linux.kernel.3CA20C9B.20309%40us.ibm.com Nobody had anything to sayabout it, so here's a patch. It moves the disassociate_ctty(1) up, and releases the BKl after it gets done. Is this a sane thing to do, or do some of those exit_*() functions still need the tty? The patch reduces hold times of the BKL in do_exit() by a factor of 100. They were on the order of 200us, now they're about 1.5us. However, those numbers were on Martin Bligh's NUMA-Q box, so they represent a serious worst-case scenario. The patch is stable, but I don't properly understand the consequences of moving the disassociate_ctty(1) up. I guess we could do this instead: lock_kernel(); sem_exit(); unlock_kernel(); __exit_files(tsk); __exit_fs(tsk); exit_namespace(tsk); exit_sighand(tsk); exit_thread(); lock_kernel(); if (current->leader) disassociate_ctty(1); unlock_kernel(); But, I hesitated to do that because of the lock bouncing consequences on the NUMA-Q. -- Dave Hansen haveblue@us.ibm.com