Implement struct lwp->lwp_vmspace. Leave p_vmspace intact. This allows
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 29 Jun 2007 21:54:15 +0000 (21:54 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 29 Jun 2007 21:54:15 +0000 (21:54 +0000)
commit287ebb0993df5dca60c3aaa965fedc87dd840918
treedd2be5c1137a04fabdcde8faf43fa1dd2e7e4fce
parentfb8e1c0c0541c89d2a73956362ee4eb015a16101
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