Messages in this thread | | | Date | Wed, 20 Mar 2002 13:37:09 -0500 | From | Daniel Jacobowitz <> | Subject | Re: [PATCH] multithreaded coredumps for elf exeecutables |
| |
On Wed, Mar 20, 2002 at 11:36:30AM +0530, Vamsi Krishna S . wrote: > There is serialization at higher level. We take a write lock > on current->mm->mmap_sem at the beginning of elf_core_dump > function which is released just before leaving the function. > So, if one thread enters elf_core_dump and starts dumping core, > no other thread (same mm) of the same process can start > dumping. > > static int elf_core_dump(long signr, struct pt_regs * regs, struct file * file) > { > ... > ... > /* now stop all vm operations */ > down_write(¤t->mm->mmap_sem); > ... > ... > ... > up_write(¤t->mm->mmap_sem); > return has_dumped; > }
That's not a feature, it's a bug. You can't take the mmap_sem before collecting thread status; it will cause a deadlock on at least ia64, where some registers are collected from user memory.
(Thanks to Manfred Spraul for explaining that to me.)
-- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer - 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/
| |