Implement struct lwp->lwp_vmspace. Leave p_vmspace intact. This allows
commit71fbc5b2b5687a5a328246de9f88d8d506300407
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 29 Jun 2007 21:54:15 +0000 (29 21:54 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 29 Jun 2007 21:54:15 +0000 (29 21:54 +0000)
tree048882de16f6afc2ed115a8f346c7ed69d539ad5
parent1b580e0646b2ea0682729df593bb97f3fd227bf1
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:
sys/kern/init_main.c
sys/kern/kern_exec.c
sys/kern/kern_fork.c
sys/kern/kern_msfbuf.c
sys/kern/kern_sig.c
sys/kern/vfs_aio.c
sys/platform/pc32/i386/genassym.c
sys/platform/pc32/i386/machdep.c
sys/platform/pc32/i386/pmap.c
sys/platform/pc32/i386/swtch.s
sys/platform/pc32/i386/trap.c
sys/platform/vkernel/i386/cpu_regs.c
sys/platform/vkernel/i386/genassym.c
sys/platform/vkernel/i386/swtch.s
sys/platform/vkernel/i386/trap.c
sys/platform/vkernel/platform/pmap.c
sys/sys/proc.h
sys/sys/vkernel.h
sys/vm/pmap.h
sys/vm/vm_fault.c
sys/vm/vm_vmspace.c