freebsd-dev/sys/kern
dyson ab8b5878ff This commit is meant to solve a couple of VM system problems or
performance issues.

	1) The pmap module has had too many inlines, and so the
	   object file is simply bigger than it needs to be.
	   Some common code is also merged into subroutines.
	2) Removal of some *evil* PHYS_TO_VM_PAGE macro calls.
	   Unfortunately, a few have needed to be added also.
	   The removal caused the need for more vm_page_lookups.
	   I added lookup hints to minimize the need for the
	   page table lookup operations.
	3) Removal of some bogus performance improvements, that
	   mostly made the code more complex (tracking individual
	   page table page updates unnecessarily).  Those improvements
	   actually hurt 386 processors perf (not that people who
	   worry about perf use 386 processors anymore :-)).
	4) Changed pv queue manipulations/structures to be TAILQ's.
	5) The pv queue code has had some performance problems since
	   day one.  Some significant scalability issues are resolved
	   by threading the pv entries from the pmap AND the physical
	   address instead of just the physical address.  This makes
	   certain pmap operations run much faster.  This does
	   not affect most micro-benchmarks, but should help loaded system
	   performance *significantly*.  DG helped and came up with most
	   of the solution for this one.
	6) Most if not all pmap bit operations follow the pattern:
		pmap_test_bit();
		pmap_clear_bit();
	   That made for twice the necessary pv list traversal.   The
	   pmap interface now supports only pmap_tc_bit type operations:
	   pmap_[test/clear]_modified, pmap_[test/clear]_referenced.
	   Additionally, the modified routine now takes a vm_page_t arg
	   instead of a phys address.  This eliminates a PHYS_TO_VM_PAGE
	   operation.
	7) Several rewrites of routines that contain redundant code to
	   use common routines, so that there is a greater likelihood of
	   keeping the cache footprint smaller.
1996-07-27 03:24:10 +00:00
..
imgact_aout.c First pass at cleaning up macros relating to pages, clusters and all that. 1996-05-02 10:43:17 +00:00
imgact_elf.c Clean-up the new VM map procfs code, and also add support for executable 1996-06-18 05:16:00 +00:00
imgact_gzip.c First pass at cleaning up macros relating to pages, clusters and all that. 1996-05-02 10:43:17 +00:00
imgact_shell.c Killed sections 3 and 4 of my copyright as I don't agree with it (I believe 1996-04-08 01:22:00 +00:00
inflate.c Removed unnecessary #includes of vm stuff. Most of them were once 1995-12-06 23:37:44 +00:00
init_main.c The Great PC98 Merge. 1996-06-14 11:02:28 +00:00
init_sysent.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
init_sysvec.c Clean-up the new VM map procfs code, and also add support for executable 1996-06-18 05:16:00 +00:00
kern_acct.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
kern_clock.c Unstaticize psratio and staticize profprocs. psratio needs to be exported 1996-06-23 17:40:47 +00:00
kern_conf.c Make a "DWIM" function for adding [bc]devsw entries for bdev drivers. 1996-07-23 21:52:43 +00:00
kern_descrip.c Add a couple of #ifdef DEVFS/#endif clauses to slence the following 1996-06-17 16:54:03 +00:00
kern_devconf.c Externalize the declaration of dc_list. This is required in order to 1996-06-12 15:10:30 +00:00
kern_exec.c This commit is meant to solve a couple of VM system problems or 1996-07-27 03:24:10 +00:00
kern_exit.c This commit is meant to solve a couple of VM system problems or 1996-07-27 03:24:10 +00:00
kern_fork.c Clean up -Wunused warnings. 1996-06-12 05:11:41 +00:00
kern_ktrace.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
kern_lkm.c Change the *evil* allocation of memory from kmem_map to the kernel_map. 1996-05-24 01:39:50 +00:00
kern_lockf.c A Major staticize sweep. Generates a couple of warnings that I'll deal 1995-12-14 08:32:45 +00:00
kern_malloc.c Minor performance improvement to kern_malloc.c that increases the 1996-05-18 22:33:13 +00:00
kern_mib.c Rename KERN_DOMAINNAME to KERN_NISDOMAINNAME so that it can't be confused 1996-07-25 18:02:40 +00:00
kern_ntptime.c Removed unnecessary #includes of vm stuff. Most of them were once 1995-12-06 23:37:44 +00:00
kern_physio.c Fix a problem that caused system crashes after physio. This problem 1996-06-26 05:52:15 +00:00
kern_proc.c Quiet a couple of -Wunused warnings. 1996-07-09 16:51:18 +00:00
kern_prot.c Fix a panic caused by (proc)->p_session being dereferenced for a process 1996-05-30 01:21:50 +00:00
kern_random.c Reduced nesting of #includes in random.h and adjusted isa/random_machdep.c 1996-06-17 16:47:43 +00:00
kern_resource.c Fixed accumulation of run time for processes that don't accumulate 1996-06-08 11:48:28 +00:00
kern_sig.c Log not exited signal only, but the fact that core dumped (or not) too 1996-07-09 18:12:37 +00:00
kern_subr.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
kern_synch.c Don't generate code for the unused function sleep(). 1996-04-07 13:35:58 +00:00
kern_sysctl.c Implemented 'kern_sysctl', which differs from 'userland_sysctl' in that 1996-06-10 16:23:42 +00:00
kern_tc.c Unstaticize psratio and staticize profprocs. psratio needs to be exported 1996-06-23 17:40:47 +00:00
kern_time.c Use a big delta in adjtime() for big negative adjustments as well as 1996-07-12 07:55:35 +00:00
kern_timeout.c Unstaticize psratio and staticize profprocs. psratio needs to be exported 1996-06-23 17:40:47 +00:00
kern_xxx.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
Make.tags.inc Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
Makefile Remove bogus architectures to allow make tags to work. 1996-03-31 18:53:43 +00:00
makesyscalls.sh Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
md5c.c Clean a bunch of -Wall warnings. 1995-02-24 08:51:34 +00:00
subr_autoconf.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
subr_clist.c Killed sections 3 and 4 of my copyright as I don't agree with it (I believe 1996-04-08 01:22:00 +00:00
subr_disklabel.c Clean up various compiler warnings. Most (if not all) were benign 1996-05-08 04:29:08 +00:00
subr_diskmbr.c Removed now-unused #includes of <machine/cpu.h>. They were for bootverbose 1996-04-07 17:32:42 +00:00
subr_diskslice.c Moved initialization of defaults for the label for the whole disk from 1996-06-17 14:43:54 +00:00
subr_dkbad.c Fix a bug that b_flags was getting unnecessarily modified by 1996-03-01 19:01:04 +00:00
subr_log.c Quiet a couple of -Wunused warnings. 1996-07-09 16:51:18 +00:00
subr_param.c Add an option "EXTRA_VNODES" to cause an extra number of vnode structures 1996-05-31 00:20:34 +00:00
subr_prf.c Correct a comment. There is no fn `kprintf' 1996-05-09 18:58:06 +00:00
subr_prof.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
subr_rlist.c In order to fix some concurrency problems with the swap pager early 1996-03-03 21:11:08 +00:00
subr_trap.c Fixed cloned comments about npx traps to match context. 1996-07-12 06:03:14 +00:00
subr_xxx.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
sys_generic.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
sys_pipe.c A few minor mods (improvements) to support more efficient pipe 1996-07-13 22:52:50 +00:00
sys_process.c Remove the now-unnecessary and incorrect wiring of the "other" processes 1996-06-02 06:24:27 +00:00
sys_socket.c Modify the kernel to use the new pr_usrreqs interface rather than the old 1996-07-11 16:32:50 +00:00
syscalls.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
syscalls.master Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
sysv_ipc.c kern_descrip.c: add fdshare()/fdcopy() 1996-02-23 18:49:25 +00:00
sysv_msg.c Somehow managed to miss these four files when converting the SYSV IPC 1996-01-05 16:38:03 +00:00
sysv_sem.c Clean up -Wunused warnings. 1996-06-12 05:11:41 +00:00
sysv_shm.c uninitialized auto variable shmseg is used in ... 1996-05-05 13:53:48 +00:00
tty_compat.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
tty_conf.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
tty_cons.c Removed unused #include. 1996-05-01 03:32:46 +00:00
tty_pty.c Clean up -Wunused warnings. 1996-06-12 05:11:41 +00:00
tty_snoop.c Switched from using devfs_add_devsw() to devfs_add_devswf() 1996-03-28 14:31:42 +00:00
tty_subr.c Killed sections 3 and 4 of my copyright as I don't agree with it (I believe 1996-04-08 01:22:00 +00:00
tty_tb.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
tty_tty.c Switched from using devfs_add_devsw() to devfs_add_devswf() 1996-03-28 14:31:42 +00:00
tty.c Clean up -Wunused warnings. 1996-06-12 05:11:41 +00:00
uipc_domain.c Modify the kernel to use the new pr_usrreqs interface rather than the old 1996-07-11 16:32:50 +00:00
uipc_mbuf.c Ups, I removed NMB_INIT too. 1996-05-12 07:48:47 +00:00
uipc_proto.c Clean up various compiler warnings. Most (if not all) were benign 1996-05-08 04:29:08 +00:00
uipc_sockbuf.c Modify the kernel to use the new pr_usrreqs interface rather than the old 1996-07-11 16:32:50 +00:00
uipc_socket2.c Modify the kernel to use the new pr_usrreqs interface rather than the old 1996-07-11 16:32:50 +00:00
uipc_socket.c Modify the kernel to use the new pr_usrreqs interface rather than the old 1996-07-11 16:32:50 +00:00
uipc_syscalls.c Modify the kernel to use the new pr_usrreqs interface rather than the old 1996-07-11 16:32:50 +00:00
uipc_usrreq.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
vfs_bio.c Fixed a major bug that caused various pmap related panics, hangs, and reboots. 1996-06-30 05:17:08 +00:00
vfs_cache.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
vfs_cluster.c Fix an error when B_MALLOC buffers are returned from the cluster read 1996-06-03 04:40:35 +00:00
vfs_conf.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
vfs_export.c DEVFS needs a special bdevvp(). 1996-07-24 21:21:43 +00:00
vfs_extattr.c Dont allow directories to be link()ed or unlink()ed, even for root 1996-05-24 16:19:23 +00:00
vfs_init.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
vfs_lookup.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
vfs_mount.c Finished (?) cleaning up sysinit stuff. 1995-12-02 17:11:20 +00:00
vfs_subr.c DEVFS needs a special bdevvp(). 1996-07-24 21:21:43 +00:00
vfs_syscalls.c Dont allow directories to be link()ed or unlink()ed, even for root 1996-05-24 16:19:23 +00:00
vfs_vnops.c Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
vnode_if.pl Another mega commit to staticize things. 1995-12-14 09:55:16 +00:00
vnode_if.sh Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00
vnode_if.src Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all 1996-03-11 20:02:06 +00:00