Implement struct lwp->lwp_vmspace. Leave p_vmspace intact. This allows
vkernels to run threaded and to run emulated VM spaces on a per-thread basis.
struct proc->p_vmspace is left intact, making it easy to switch into and out
of an emulated VM space. This is needed for the virtual kernel SMP work.
This also gives us the flexibility to run emulated VM spaces in their own
threads, or in a limited number of separate threads. Linux does this and
they say it improved performance. I don't think it necessarily improved
performance but its nice to have the flexibility to do it in the future.
21 files changed: