When a process terminates, the kernel invokes the exit_mm( ) function to release the address space owned by that process:
atomic inc(&tsk->mm->mm count); mm = tsk->mm; tsk->mm = NULL;
enter lazy tlb(mm, current, smp processor id()); mmput(mm);
The mm_release( ) function wakes up any process sleeping in the tsk->vfork_done completion (see Section 5.3.8). Typically, the corresponding wait queue is nonempty only if the exiting process was created by means of the vfork( ) system call (see Section 3.4.1).
I [email protected] RuBoard
Was this article helpful?