The vfork () system call has the same effect as fork(), except that the page table entries of the parent process are not copied.Today, with copy-on-write and child-runs-first semantics,the only benefit to vfork() is not copying the page table entries.If Linux one day gains copy-on-write page table entries,there will no longer be any benefit.
These are some lines from Robert Love's book on 'Linux Kernel Development'.What I don't understand is what is the benefit of not copying the page table entries?
There is also a line which says,"In copy_process(),the task_struct member vfork_done is set to NULL".
What is this vfork_done? What is its function?