NetBSD/sys/kern
thorpej 278e7ae222 Yet more fixes to the pool allocator:
- Protect userspace from unnecessary header inclusions (as noted on
current-users).

- Some const poisioning.

- GREATLY simplify the locking protocol, and fix potential deadlock
scenarios.  In particular, assume that the back-end page allocator
provides its own locking mechanism (this is currently true for all
such allocators in the NetBSD kernel).  Doing so allows us to simply
use one spin lock for serialized access to all r/w members of the pool
descriptor.  The spin lock is released before calling the back-end
allocator, and re-acquired upon return from it.

- Fix a problem in pr_rmpage() where a data structure was referenced
after it was freed.

- Minor tweak to page manaement.  Migrate both idle and empty pages
to the end of the page list.  As soon as a page becomes un-empty
(by a pool_put()), place it at the head of the page list, and set
curpage to point to it.  This reduces fragmentation as well as the
time required to find a non-empty page as soon as curpage becomes
empty again.

- Use mono_time throughout, and protect access to it w/ splclock().

- In pool_reclaim(), if freeing an idle page would reduce the number
of allocatable items to below the low water mark, don't.
1999-03-31 23:23:47 +00:00
..
Make.tags.inc Protect the COMM variable with an '.ifmake tags' to stop the long delay 1999-02-12 19:52:30 +00:00
Makefile (mostly) fix kernel tags support. from Frederick Bruckman in pr-6445. 1998-11-15 20:36:30 +00:00
exec_aout.c
exec_conf.c COMPAT_SPARC32 -> COMPAT_NETBSD32 1999-03-26 04:29:20 +00:00
exec_ecoff.c
exec_elf32.c Use of casts as lvalues is a GNU C extension; rearrange slightly. 1999-02-10 17:03:26 +00:00
exec_elf64.c
exec_elf_common.c update for linux file move. 1998-10-03 20:39:32 +00:00
exec_script.c Modify VOP_CLOSE vnode op to always take a locked vnode. Change vn_close 1999-02-26 23:38:55 +00:00
exec_subr.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
genassym.awk Allow pattern matching for symbol string to handle GCC's output for mips, 1998-11-25 06:10:19 +00:00
genassym.sh
init_main.c Assign initproc in main(), not start_init(). It's conventient to do so. 1999-03-26 01:10:50 +00:00
init_sysent.c Regen. 1999-03-28 17:32:51 +00:00
kern_acct.c Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. 1998-08-04 04:03:10 +00:00
kern_clock.c schedclk() -> schedclock(), for consistency with hardclock(), statclock(), ... 1999-02-28 18:14:57 +00:00
kern_descrip.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_exec.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_exit.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_fork.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_fthread.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_kthread.c #ifdef __STDC__ -> #if __STDC__ 1998-12-22 21:21:36 +00:00
kern_ktrace.c Substantial signal handling changes: 1998-09-11 12:50:05 +00:00
kern_lkm.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_lock.c Prevent deadlock cited in PR4629 from crashing the system. (copyout 1999-03-25 00:20:35 +00:00
kern_malloc.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_ntptime.c
kern_physio.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_proc.c - Add a new proclist, deadproc, which holds dead-but-not-yet-zombie 1998-09-08 23:47:49 +00:00
kern_prot.c Sync __getlogin()'s namelen argument with the libc-internal declaration 1999-03-28 17:34:33 +00:00
kern_resource.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_sig.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_subr.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_synch.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_sysctl.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
kern_time.c Add some braces to make egcs happy (ambiguous else warning). 1998-08-18 06:27:01 +00:00
kern_xxx.c
kgdb_stub.c Fix a few comment tyops, kill an inaccurate comment, and 1998-08-30 20:30:57 +00:00
makesyscalls.sh Now that shell has been fixed so that ". filename" does not look at . if . 1999-02-17 18:17:10 +00:00
subr_autoconf.c Enable `device_register()' for the sparc. 1998-12-03 23:50:11 +00:00
subr_disk.c PR kern/7033 (Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>): use 1999-02-22 16:00:01 +00:00
subr_extent.c Fix a thinko in the previous. 1999-02-18 18:52:29 +00:00
subr_log.c Add some braces to make egcs happy (ambiguous else warning). 1998-08-18 06:27:01 +00:00
subr_pool.c Yet more fixes to the pool allocator: 1999-03-31 23:23:47 +00:00
subr_prf.c Fix some printf format problems on Alpha. 1999-02-12 00:46:11 +00:00
subr_prof.c Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. 1998-08-04 04:03:10 +00:00
subr_rmap.c Back out previous. 1998-08-18 18:16:30 +00:00
subr_xxx.c
sys_generic.c Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. 1998-08-04 04:03:10 +00:00
sys_process.c Disallow tracing of processes unless tracer's root directory is at or 1999-03-25 04:45:56 +00:00
sys_socket.c Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. 1998-08-04 04:03:10 +00:00
syscalls.c Regen. 1999-03-28 17:32:51 +00:00
syscalls.conf
syscalls.master Sync __getlogin()'s namelen argument with the libc-internal declaration 1999-03-28 17:29:52 +00:00
sysv_ipc.c Make copyrights consistent; fix weird/trailing spaces add missing (c) etc. 1998-09-12 17:20:02 +00:00
sysv_msg.c No need to get definition of "SYSV..." from "opt_sysv.h" because they 1998-10-21 22:24:28 +00:00
sysv_sem.c No need to get definition of "SYSV..." from "opt_sysv.h" because they 1998-10-21 22:24:28 +00:00
sysv_shm.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
tty.c Substantial signal handling changes: 1998-09-11 12:50:05 +00:00
tty_conf.c defopt COMPAT_43 1998-12-10 15:07:01 +00:00
tty_pty.c Substantial signal handling changes: 1998-09-11 12:50:05 +00:00
tty_subr.c Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. 1998-08-04 04:03:10 +00:00
tty_tb.c Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. 1998-08-04 04:03:10 +00:00
tty_tty.c
uipc_domain.c Garbage-collect some straggling netimp stuff. 1999-01-14 01:14:01 +00:00
uipc_mbuf.c Set a hard limit (rather than an advisory high water mark for pages) of 1999-03-31 01:26:40 +00:00
uipc_proto.c
uipc_socket.c Ensure that you can only bind a more specific address when it is done by the 1999-03-23 10:45:37 +00:00
uipc_socket2.c Ensure that you can only bind a more specific address when it is done by the 1999-03-23 10:45:37 +00:00
uipc_syscalls.c * Due to addition and use of socklen_t, make the socket option and address 1999-02-10 18:02:28 +00:00
uipc_usrreq.c Disallow descriptor-passing of descriptors which are open on 1999-03-22 17:54:38 +00:00
vfs_bio.c GC the B_CACHE bit. 1998-11-09 01:18:34 +00:00
vfs_cache.c Change namei cache to record vnode->(parent,name) entries (for directories). 1999-03-22 17:01:55 +00:00
vfs_cluster.c Rework cluster_rbuild() to use buffers with the file system block size. 1998-11-08 18:18:31 +00:00
vfs_getcwd.c Disallow tracing of processes unless tracer's root directory is at or 1999-03-25 04:45:56 +00:00
vfs_init.c Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. 1998-08-04 04:03:10 +00:00
vfs_lockf.c Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. 1998-08-04 04:03:10 +00:00
vfs_lookup.c Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one. 1998-08-04 04:03:10 +00:00
vfs_subr.c completely remove Mach VM support. all that is left is the all the 1999-03-24 05:50:49 +00:00
vfs_syscalls.c If copyout() fails, make sure to unbusy the mount point before returning. 1999-03-31 19:18:45 +00:00
vfs_vnops.c Previous change to vn_lock() was bogus. If we got EDEADLK, it was from 1999-03-31 18:30:13 +00:00
vnode_if.c Regen files based on changes to syscalls.master, vnode_if.src (latter 1999-03-22 17:13:34 +00:00
vnode_if.sh Quote the backquotes in the double-quoted shell string, otherwise they 1998-09-13 14:44:34 +00:00
vnode_if.src Include some comments with more details on the VOP_LOOKUP locking protocol 1999-03-22 16:57:37 +00:00