freebsd-skq/sys/kern
dillon c8a95a285d This commit represents work mainly submitted by Tor and slightly modified
by myself.  It solves a serious vm_map corruption problem that can occur
with the buffer cache when block sizes > 64K are used.  This code has been
heavily tested in -stable but only tested somewhat on -current.  An MFC
will occur in a few days.  My additions include the vm_map_simplify_entry()
and minor buffer cache boundry case fix.

Make the buffer cache use a system map for buffer cache KVM rather then a
normal map.

Ensure that VM objects are not allocated for system maps.  There were cases
where a buffer map could wind up with a backing VM object -- normally
harmless, but this could also result in the buffer cache blocking in places
where it assumes no blocking will occur, possibly resulting in corrupted
maps.

Fix a minor boundry case in the buffer cache size limit is reached that
could result in non-optimal code.

Add vm_map_simplify_entry() calls to prevent 'creeping proliferation'
of vm_map_entry's in the buffer cache's vm_map.  Previously only a simple
linear optimization was made.  (The buffer vm_map typically has only a
handful of vm_map_entry's.  This stabilizes it at that level permanently).

PR: 20609
Submitted by: (Tor Egge) tegge
2001-02-04 06:19:28 +00:00
..
bus_if.m Alter the return value and arguments of the GET_RESOURCE_LIST bus method. 2000-11-28 06:49:15 +00:00
device_if.m
genassym.sh Improve kernel bootstrapping: 2001-01-28 06:39:56 +00:00
gensetdefs.pl Don't hard-code alignment and data declarations valid for 64-bit 2001-01-29 01:55:54 +00:00
imgact_aout.c Back out proc locking to protect p_ucred for obtaining additional 2001-01-27 00:01:31 +00:00
imgact_elf.c Back out proc locking to protect p_ucred for obtaining additional 2001-01-27 00:01:31 +00:00
imgact_gzip.c Fix a typo. 2001-01-24 08:42:39 +00:00
imgact_shell.c
inflate.c
init_main.c - Catch up to p_sflag changes. 2001-01-24 10:40:56 +00:00
init_sysent.c Regen. 2000-12-02 05:45:32 +00:00
kern_acct.c Back out proc locking to protect p_ucred for obtaining additional 2001-01-27 00:01:31 +00:00
kern_acl.c Back out proc locking to protect p_ucred for obtaining additional 2001-01-27 00:01:31 +00:00
kern_cap.c Remove unneeded #include <sys/proc.h> lines. 2000-10-29 13:57:19 +00:00
kern_clock.c - Proc locking. 2001-01-24 10:43:25 +00:00
kern_condvar.c Catch up to P_FOO -> PS_FOO changes in proc flags. 2001-01-24 10:44:01 +00:00
kern_conf.c KASSERT that the minor number passed to make_dev() is valid. 2001-02-02 03:32:11 +00:00
kern_descrip.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
kern_environment.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
kern_event.c Proc locking. 2001-01-24 00:35:12 +00:00
kern_exec.c Protect proc.p_pptr and proc.p_children/p_sibling with the 2000-12-23 19:43:10 +00:00
kern_exit.c - Proc locking. 2001-01-24 00:33:44 +00:00
kern_fork.c Fix fork_exit() to take a pointer to a function that returns void as its 2001-01-26 23:51:41 +00:00
kern_idle.c Catch up to moving headers: 2000-10-20 07:58:15 +00:00
kern_intr.c Remove the static splXXX functions and replace them by static __inline 2001-01-19 09:57:29 +00:00
kern_jail.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
kern_kthread.c - Catch up to proc flag changes. 2001-01-24 10:47:50 +00:00
kern_ktr.c Use PCPU_GET, PCPU_PTR and PCPU_SET to access all per-cpu variables 2001-01-10 04:43:51 +00:00
kern_ktrace.c Don't use SCARG. 2001-01-08 07:22:06 +00:00
kern_linker.c Pull out the module path from the loader. ie: if you boot from 2000-12-28 08:14:58 +00:00
kern_lock.c Convert all simplelocks to mutexes and remove the simplelock implementations. 2001-01-24 12:35:55 +00:00
kern_lockf.c
kern_malloc.c Let M_PANIC go back to the private tree as its intention isn't understood well 2001-01-31 04:50:20 +00:00
kern_mib.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
kern_module.c Staticize some malloc M_ instances. 2000-12-08 20:09:00 +00:00
kern_mutex.c Add a new ddb command 'witness_list' that lists the mutexes held by 2001-01-27 07:51:34 +00:00
kern_ntptime.c Updates to the ntp pll from John Hay. 2000-09-10 09:13:34 +00:00
kern_physio.c
kern_proc.c Add a new item to kinfo_proc: ki_sflag to mirror p_sflag. 2001-01-24 12:49:52 +00:00
kern_prot.c Fix getsid() to use "=" instead of "==". 2001-01-13 22:49:59 +00:00
kern_random.c This patchset fixes a large number of file descriptor race conditions. 2000-11-18 21:01:04 +00:00
kern_resource.c - Add a mtx_assert() for sched_lock in calcru(). 2001-01-24 11:06:39 +00:00
kern_shutdown.c Convert all simplelocks to mutexes and remove the simplelock implementations. 2001-01-24 12:35:55 +00:00
kern_sig.c - Proc locking. 2001-01-24 11:08:02 +00:00
kern_subr.c Use PCPU_GET, PCPU_PTR and PCPU_SET to access all per-cpu variables 2001-01-10 04:43:51 +00:00
kern_switch.c Use PCPU_GET, PCPU_PTR and PCPU_SET to access all per-cpu variables 2001-01-10 04:43:51 +00:00
kern_synch.c Zap last remaining references to (and a use use of) of simple_locks. 2001-01-31 04:29:52 +00:00
kern_syscalls.c sysvipc loadable. 2000-12-01 08:57:47 +00:00
kern_sysctl.c Remove unused variable 'int n;' 2001-01-29 13:05:21 +00:00
kern_tc.c Remove a bogus #ifdef KTR stanza. 2001-01-01 23:09:53 +00:00
kern_time.c Use callout_reset instead of timeout(9). Most callouts are statically 2000-11-27 22:52:31 +00:00
kern_timeout.c Revert the last commit to the callout interface, and add a flag to 2000-11-25 06:22:16 +00:00
kern_xxx.c
ksched.c
link_aout.c Change the conditionaal so that we only build this on i386 instead of 2000-09-29 13:32:24 +00:00
link_elf_obj.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
link_elf.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
linker_if.m
Make.tags.inc there is no more miscfs/devfs 2000-12-31 23:12:20 +00:00
makedevops.pl Fix a bug in both scripts: HEADER sections were not emitted to the header 2001-01-04 13:41:24 +00:00
Makefile Retire kernfs (kernel part). 2000-12-28 12:17:35 +00:00
makeobjops.pl Fix a bug in both scripts: HEADER sections were not emitted to the header 2001-01-04 13:41:24 +00:00
makesyscalls.sh Add reserved lkmressys keyword. I swear, this script will die the 2000-12-01 08:47:54 +00:00
md5c.c Add ia64 support. 2000-09-29 13:36:47 +00:00
p1003_1b.c
posix4_mib.c
subr_acl_posix1e.c Back out proc locking to protect p_ucred for obtaining additional 2001-01-27 00:01:31 +00:00
subr_autoconf.c
subr_blist.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
subr_bus.c Unset the devclass if the attach fails and the devclass was not set to 2001-01-08 22:16:26 +00:00
subr_clist.c
subr_devstat.c Support for unsigned integer and long sysctl variables. Update the 2000-07-05 07:46:41 +00:00
subr_disk.c Don't clone impossible unit numbers for disks. 2000-12-15 17:55:24 +00:00
subr_disklabel.c A bit of sanity-checking in bioqdisksort(): panic if we recurse. 2001-01-14 18:48:42 +00:00
subr_diskmbr.c Make diskerr() always log with printf. 2000-11-26 19:29:15 +00:00
subr_diskslice.c Add a new ioctl for doing virgin disklabels. 2000-10-31 07:05:40 +00:00
subr_eventhandler.c Implement MTX_RECURSE flag for mtx_init(). 2001-01-19 01:59:14 +00:00
subr_kobj.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
subr_log.c Replace logwakeup() with "int msgbuftrigger". There is little 2000-12-20 21:50:37 +00:00
subr_module.c
subr_param.c Remove unneeded <stddef.h> #includes. 2000-10-29 16:57:42 +00:00
subr_prf.c Use PCPU_GET, PCPU_PTR and PCPU_SET to access all per-cpu variables 2001-01-10 04:43:51 +00:00
subr_prof.c - Catch up to proc flag changes. 2001-01-24 11:11:35 +00:00
subr_rman.c Convert all simplelocks to mutexes and remove the simplelock implementations. 2001-01-24 12:35:55 +00:00
subr_sbuf.c Remove an assertion I forgot to remove in the previous commit: sbuf_len() 2001-01-28 00:33:58 +00:00
subr_scanf.c
subr_smp.c Remove some leftovers from the CMAP* stuff in globaldata and the 2001-01-30 04:02:28 +00:00
subr_taskqueue.c Staticize some malloc M_ instances. 2000-12-08 20:09:00 +00:00
subr_trap.c Send "#if NISA > 0" to the bit-bucket and replace it with an option. 2001-01-29 09:38:39 +00:00
subr_turnstile.c Add a new ddb command 'witness_list' that lists the mutexes held by 2001-01-27 07:51:34 +00:00
subr_witness.c Add a new ddb command 'witness_list' that lists the mutexes held by 2001-01-27 07:51:34 +00:00
subr_xxx.c
sys_generic.c - Catch up to proc flag changes. 2001-01-24 11:12:37 +00:00
sys_pipe.c Style improvements for last fix. Should be functionally the same. 2001-01-11 00:13:54 +00:00
sys_process.c - Catch up to proc flag changes. 2001-01-24 11:15:24 +00:00
sys_socket.c
syscalls.c Regen. 2000-12-02 05:45:32 +00:00
syscalls.master Remove thr_sleep and thr_wakeup. Remove fields p_nthread and p_wakeup 2000-12-02 05:41:30 +00:00
sysv_ipc.c sysvipc loadable. 2000-12-01 08:57:47 +00:00
sysv_msg.c Use predictable internal names for the sysvipc modules, so we have a 2001-01-14 18:04:30 +00:00
sysv_sem.c Use predictable internal names for the sysvipc modules, so we have a 2001-01-14 18:04:30 +00:00
sysv_shm.c Use predictable internal names for the sysvipc modules, so we have a 2001-01-14 18:04:30 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Replace logwakeup() with "int msgbuftrigger". There is little 2000-12-20 21:50:37 +00:00
tty_pty.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
tty_snoop.c Remove unused #include "snp.h" 2001-01-29 10:06:22 +00:00
tty_subr.c
tty_tty.c Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00
tty.c Turn '#if NSNP > 0' into an option. 2001-01-29 09:43:36 +00:00
uipc_accf.c Remove unneeded #include <sys/proc.h> lines. 2000-10-29 13:57:19 +00:00
uipc_domain.c Use callout_reset instead of timeout(9). Most callouts are statically 2000-11-27 22:52:31 +00:00
uipc_mbuf2.c * Have m_pulldown() use the new M_WRITABLE() macro in order to determine 2000-11-11 23:04:15 +00:00
uipc_mbuf.c When short of mbufs or mbuf clusters, we sleep on appropriate "counters." 2001-01-20 21:29:10 +00:00
uipc_proto.c
uipc_sockbuf.c Make sbcompress use the new M_WRITABLE macro. Previously sbcompress 2000-11-19 22:22:47 +00:00
uipc_socket2.c Make sbcompress use the new M_WRITABLE macro. Previously sbcompress 2000-11-19 22:22:47 +00:00
uipc_socket.c First step towards an MP-safe zone allocator: 2001-01-21 22:23:11 +00:00
uipc_syscalls.c Fix the <sys/queue.h> abuse. 2001-01-02 11:51:55 +00:00
uipc_usrreq.c * Rename M_WAIT mbuf subsystem flag to M_TRYWAIT. 2000-12-21 21:44:31 +00:00
vfs_acl.c Back out proc locking to protect p_ucred for obtaining additional 2001-01-27 00:01:31 +00:00
vfs_aio.c Remove thr_sleep and thr_wakeup. Remove fields p_nthread and p_wakeup 2000-12-02 05:41:30 +00:00
vfs_bio.c This commit represents work mainly submitted by Tor and slightly modified 2001-02-04 06:19:28 +00:00
vfs_cache.c Staticize some malloc M_ instances. 2000-12-08 20:09:00 +00:00
vfs_cluster.c Do not cluster with B_LOCKED buffers. 2001-01-19 05:31:07 +00:00
vfs_conf.c Add `_PATH_DEVZERO'. 2000-12-09 09:35:55 +00:00
vfs_default.c Give vop_mmap an untimely death. The opportunity to give it a timely 2000-11-01 17:57:24 +00:00
vfs_export.c Properly lock new vnode. 2001-01-31 04:54:23 +00:00
vfs_extattr.c - Change the allproc_lock to use a macro, ALLPROC_LOCK(how), instead 2000-12-13 00:17:05 +00:00
vfs_init.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
vfs_lookup.c Untangle vfsinit() a bit. Use seperate sysinit functions rather than 2000-12-06 07:09:08 +00:00
vfs_mount.c Add `_PATH_DEVZERO'. 2000-12-09 09:35:55 +00:00
vfs_subr.c Properly lock new vnode. 2001-01-31 04:54:23 +00:00
vfs_syscalls.c - Change the allproc_lock to use a macro, ALLPROC_LOCK(how), instead 2000-12-13 00:17:05 +00:00
vfs_vnops.c Convert all simplelocks to mutexes and remove the simplelock implementations. 2001-01-24 12:35:55 +00:00
vnode_if.pl Simplify this a bit so that it doesn't have to generate silly redundant 2000-12-06 06:59:38 +00:00
vnode_if.src Give vop_mmap an untimely death. The opportunity to give it a timely 2000-11-01 17:57:24 +00:00