From owner-cvs-sys Thu Jan 22 09:31:11 1998 Return-Path: Received: (from daemon@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA03727 for cvs-sys-outgoing; Thu, 22 Jan 1998 09:31:11 -0800 (PST) (envelope-from owner-cvs-sys) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id JAA03688; Thu, 22 Jan 1998 09:30:58 -0800 (PST) (envelope-from dyson@FreeBSD.org) From: John Dyson Received: (from dyson@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id JAA24559; Thu, 22 Jan 1998 09:30:51 -0800 (PST) Date: Thu, 22 Jan 1998 09:30:51 -0800 (PST) Message-Id: <199801221730.JAA24559@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: cvs commit: src/sys/i386/i386 machdep.c pmap.c vm_machdep.c src/sys/kern init_main.c kern_exit.c kern_fork.c kern_malloc.c kern_proc.c kern_subr.c sys_process.c vfs_bio.c vfs_subr.c src/sys/miscfs/procfs procfs_mem.c src/sys/sys buf.h proc.h ... Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk dyson 1998/01/22 09:30:50 PST Modified files: sys/i386/i386 machdep.c pmap.c vm_machdep.c sys/kern init_main.c kern_exit.c kern_fork.c kern_malloc.c kern_proc.c kern_subr.c sys_process.c vfs_bio.c vfs_subr.c sys/miscfs/procfs procfs_mem.c sys/sys buf.h proc.h sys/ufs/ffs ffs_vfsops.c sys/ufs/ufs ufs_lookup.c ufs_readwrite.c sys/vm pmap.h swap_pager.c vm_extern.h vm_fault.c vm_glue.c vm_kern.c vm_map.c vm_map.h vm_object.c vm_object.h vm_page.c vm_pageout.c vm_pageout.h vm_zone.c Log: VM level code cleanups. 1) Start using TSM. Struct procs continue to point to upages structure, after being freed. Struct vmspace continues to point to pte object and kva space for kstack. u_map is now superfluous. 2) vm_map's don't need to be reference counted. They always exist either in the kernel or in a vmspace. The vmspaces are managed by reference counts. 3) Remove the "wired" vm_map nonsense. 4) No need to keep a cache of kernel stack kva's. 5) Get rid of strange looking ++var, and change to var++. 6) Change more data structures to use our "zone" allocator. Added struct proc, struct vmspace and struct vnode. This saves a significant amount of kva space and physical memory. Additionally, this enables TSM for the zone managed memory. 7) Keep ioopt disabled for now. 8) Remove the now bogus "single use" map concept. 9) Use generation counts or id's for data structures residing in TSM, where it allows us to avoid unneeded restart overhead during traversals, where blocking might occur. 10) Account better for memory deficits, so the pageout daemon will be able to make enough memory available (experimental.) 11) Fix some vnode locking problems. (From Tor, I think.) 12) Add a check in ufs_lookup, to avoid lots of unneeded calls to bcmp. (experimental.) 13) Significantly shrink, cleanup, and make slightly faster the vm_fault.c code. Use generation counts, get rid of unneded collpase operations, and clean up the cluster code. 14) Make vm_zone more suitable for TSM. This commit is partially as a result of discussions and contributions from other people, including DG, Tor Egge, PHK, and probably others that I have forgotten to attribute (so let me know, if I forgot.) This is not the infamous, final cleanup of the vnode stuff, but a necessary step. Vnode mgmt should be correct, but things might still change, and there is still some missing stuff (like ioopt, and physical backing of non-merged cache files, debugging of layering concepts.) Revision Changes Path 1.282 +8 -10 src/sys/i386/i386/machdep.c 1.178 +53 -64 src/sys/i386/i386/pmap.c 1.96 +3 -1 src/sys/i386/i386/vm_machdep.c 1.80 +2 -2 src/sys/kern/init_main.c 1.65 +3 -2 src/sys/kern/kern_exit.c 1.51 +3 -2 src/sys/kern/kern_fork.c 1.39 +2 -3 src/sys/kern/kern_malloc.c 1.31 +4 -1 src/sys/kern/kern_proc.c 1.16 +5 -2 src/sys/kern/kern_subr.c 1.34 +5 -5 src/sys/kern/sys_process.c 1.144 +20 -7 src/sys/kern/vfs_bio.c 1.125 +7 -3 src/sys/kern/vfs_subr.c 1.28 +3 -3 src/sys/miscfs/procfs/procfs_mem.c 1.45 +2 -1 src/sys/sys/buf.h 1.53 +4 -1 src/sys/sys/proc.h 1.66 +2 -1 src/sys/ufs/ffs/ffs_vfsops.c 1.19 +2 -1 src/sys/ufs/ufs/ufs_lookup.c 1.40 +2 -2 src/sys/ufs/ufs/ufs_readwrite.c 1.26 +2 -3 src/sys/vm/pmap.h 1.82 +10 -9 src/sys/vm/swap_pager.c 1.37 +3 -3 src/sys/vm/vm_extern.h 1.76 +89 -170 src/sys/vm/vm_fault.c 1.70 +1 -4 src/sys/vm/vm_glue.c 1.40 +4 -5 src/sys/vm/vm_kern.c 1.108 +104 -179 src/sys/vm/vm_map.c 1.32 +4 -7 src/sys/vm/vm_map.h 1.108 +27 -7 src/sys/vm/vm_object.c 1.43 +3 -1 src/sys/vm/vm_object.h 1.87 +15 -7 src/sys/vm/vm_page.c 1.109 +7 -9 src/sys/vm/vm_pageout.c 1.23 +2 -1 src/sys/vm/vm_pageout.h 1.15 +13 -5 src/sys/vm/vm_zone.c