1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
freebsd/sys/kern
Kirk McKusick ad8ac923fa These changes appear to give us benefits with both small (32MB) and
large (1G) memory machine configurations.  I was able to run 'dbench 32'
on a 32MB system without bring the machine to a grinding halt.

    * buffer cache hash table now dynamically allocated.  This will
      have no effect on memory consumption for smaller systems and
      will help scale the buffer cache for larger systems.

    * minor enhancement to pmap_clearbit().  I noticed that
      all the calls to it used constant arguments.  Making
      it an inline allows the constants to propogate to
      deeper inlines and should produce better code.

    * removal of inherent vfs_ioopt support through the emplacement
      of appropriate #ifdef's, with John's permission.  If we do not
      find a use for it by the end of the year we will remove it entirely.

    * removal of getnewbufloops* counters & sysctl's - no longer
      necessary for debugging, getnewbuf() is now optimal.

    * buffer hash table functions removed from sys/buf.h and localized
      to vfs_bio.c

    * VFS_BIO_NEED_DIRTYFLUSH flag and support code added
      ( bwillwrite() ), allowing processes to block when too many dirty
      buffers are present in the system.

    * removal of a softdep test in bdwrite() that is no longer necessary
      now that bdwrite() no longer attempts to flush dirty buffers.

    * slight optimization added to bqrelse() - there is no reason
      to test for available buffer space on B_DELWRI buffers.

    * addition of reverse-scanning code to vfs_bio_awrite().
      vfs_bio_awrite() will attempt to locate clusterable areas
      in both the forward and reverse direction relative to the
      offset of the buffer passed to it.  This will probably not
      make much of a difference now, but I believe we will start
      to rely on it heavily in the future if we decide to shift
      some of the burden of the clustering closer to the actual
      I/O initiation.

    * Removal of the newbufcnt and lastnewbuf counters that Kirk
      added.  They do not fix any race conditions that haven't already
      been fixed by the gbincore() test done after the only call
      to getnewbuf().  getnewbuf() is a static, so there is no chance
      of it being misused by other modules.  ( Unless Kirk can think
      of a specific thing that this code fixes.  I went through it
      very carefully and didn't see anything ).

    * removal of VOP_ISLOCKED() check in flushbufqueues().  I do not
      think this check is necessary, the buffer should flush properly
      whether the vnode is locked or not. ( yes? ).

    * removal of extra arguments passed to getnewbuf() that are not
      necessary.

    * missed cluster_wbuild() that had to be a cluster_wbuild_wb() in
      vfs_cluster.c

    * vn_write() now calls bwillwrite() *PRIOR* to locking the vnode,
      which should greatly aid flushing operations in heavy load
      situations - both the pageout and update daemons will be able
      to operate more efficiently.

    * removal of b_usecount.  We may add it back in later but for now
      it is useless.  Prior implementations of the buffer cache never
      had enough buffers for it to be useful, and current implementations
      which make more buffers available might not benefit relative to
      the amount of sophistication required to implement a b_usecount.
      Straight LRU should work just as well, especially when most things
      are VMIO backed.  I expect that (even though John will not like
      this assumption) directories will become VMIO backed some point soon.

Submitted by:	Matthew Dillon <dillon@backplane.com>
Reviewed by:	Kirk McKusick <mckusick@mckusick.com>
1999-07-08 06:06:00 +00:00
..
bus_if.m * Change device_add_child_after() to device_add_child_ordered() which is 1999-05-28 09:25:16 +00:00
device_if.m Update the comments on values than can be returned by DEVICE_PROBE. 1999-06-17 19:22:12 +00:00
imgact_aout.c Add the options MAP_PREFAULT and MAP_PREFAULT_PARTIAL to vm_map_find/insert, 1999-05-17 00:53:56 +00:00
imgact_elf.c Also try to load the interpreter without prepending "emul_path". This allows 1999-07-05 18:38:29 +00:00
imgact_gzip.c Correctly return ENOEXEC for really short zipped files. The way this is 1999-06-21 16:23:13 +00:00
imgact_shell.c Fix a couple of warnings and some bitrot in comments. 1999-05-09 16:04:14 +00:00
inflate.c kzipboot uses kern/inflate.c outside the kernel by providing its own 1998-11-10 09:08:49 +00:00
init_main.c Slight reorganization of kernel thread/process creation. Instead of using 1999-07-01 13:21:46 +00:00
init_sysent.c Regenerated. 1999-05-13 09:12:57 +00:00
kern_acct.c Suser() simplification: 1999-04-27 11:18:52 +00:00
kern_clock.c Make the machdep.i8254_freq and machdep.tsc_freq sysctls modify the 1999-04-25 09:00:00 +00:00
kern_conf.c Remove cmaj and bmaj args from DEV_DRIVER_MODULE. 1999-07-04 14:58:56 +00:00
kern_descrip.c From the submitter: 1999-06-07 20:37:29 +00:00
kern_environment.c Fix warnings related to -Wall -Wcast-qual 1999-01-28 17:32:05 +00:00
kern_exec.c Suser() simplification: 1999-04-27 11:18:52 +00:00
kern_exit.c From the submitter: 1999-06-07 20:37:29 +00:00
kern_fork.c Stop rfork(0) from panicing. (oops!!) 1999-07-03 20:58:44 +00:00
kern_intr.c Stage 1 of a cleanup of the i386 interrupt registration mechanism. 1999-04-21 07:26:30 +00:00
kern_jail.c Add beer-ware license and $Id$ 1999-04-30 06:51:51 +00:00
kern_kthread.c Slight reorganization of kernel thread/process creation. Instead of using 1999-07-01 13:21:46 +00:00
kern_ktrace.c Make sure syscall arguments properly aligned in ktrace records. 1999-06-16 18:37:01 +00:00
kern_linker.c Slight reorganization of kernel thread/process creation. Instead of using 1999-07-01 13:21:46 +00:00
kern_lock.c When requesting an exclusive lock with LK_NOWAIT, do not panic 1999-06-28 07:54:58 +00:00
kern_lockf.c Fixed corruption of the "blocked" list in lf_setlock() when tsleep() 1999-07-04 14:43:01 +00:00
kern_malloc.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
kern_mib.c Add sysctl descriptions to many SYSCTL_XXXs 1999-05-03 23:57:32 +00:00
kern_module.c Oops, set module->file.. 1999-05-20 00:00:58 +00:00
kern_ntptime.c Suser() simplification: 1999-04-27 11:18:52 +00:00
kern_physio.c Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
kern_proc.c Use NOUDEV for udev_t's 1999-05-17 13:50:24 +00:00
kern_prot.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
kern_random.c Add sufficient braces to keep egcs happy about potentially ambiguous 1999-05-06 18:13:11 +00:00
kern_resource.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
kern_shutdown.c Fix a warning - the code is correct but gcc can't tell. 1999-07-01 22:54:55 +00:00
kern_sig.c Implement SA_SIGINFO for i386. Thanks to Bruce Evans for much more 1999-07-06 07:13:48 +00:00
kern_subr.c These changes appear to give us benefits with both small (32MB) and 1999-07-08 06:06:00 +00:00
kern_synch.c The magic "no-cpu" cpu number is 0xff. Don't misrepresent cpu 1999-03-05 16:38:13 +00:00
kern_syscalls.c Call the chained module handler before unregistering the syscall so that 1999-06-27 09:38:44 +00:00
kern_sysctl.c Minor tweaks to make sure (new) prerequisites for <sys/buf.h> (mostly 1999-06-27 11:44:22 +00:00
kern_tc.c Make the machdep.i8254_freq and machdep.tsc_freq sysctls modify the 1999-04-25 09:00:00 +00:00
kern_threads.c Removed bogus casts to c_caddr_t. This is part of terminating 1999-01-29 08:29:05 +00:00
kern_time.c Minor tweaks to make sure (new) prerequisites for <sys/buf.h> (mostly 1999-06-27 11:44:22 +00:00
kern_timeout.c Fix callout_init(). This didn't have any practical effect since it 1999-03-06 22:27:02 +00:00
kern_xxx.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
ksched.c
link_aout.c Add enough include files to make this actually compile on an a.out system. 1999-05-15 23:18:32 +00:00
link_elf_obj.c Use KERNBASE for the load address of the kernel rather than magic constants 1999-05-08 13:03:49 +00:00
link_elf.c Use KERNBASE for the load address of the kernel rather than magic constants 1999-05-08 13:03:49 +00:00
Make.tags.inc Update to know about current kernel directory layout. 1999-02-28 22:14:16 +00:00
makedevops.pl Remove hack to accept French spelling of METHOD (METHODE) 1999-05-10 17:45:49 +00:00
Makefile Added ../sys/syscall.mk to targets. Back it up like all the other 1999-05-13 09:19:14 +00:00
makesyscalls.sh
md5c.c
p1003_1b.c Well folks, this is it - The second stage of the removal for build support 1999-04-17 08:36:07 +00:00
posix4_mib.c * Change sysctl from using linker_set to construct its tree using SLISTs. 1999-02-16 10:49:55 +00:00
subr_autoconf.c Fix a very long standing bug in run_interrupt_driven_config_hooks(). It 1999-04-25 22:13:34 +00:00
subr_blist.c Add Id strings 1999-06-17 23:42:45 +00:00
subr_bus.c * Add a function devclass_create() which looks up the named devclass and 1999-05-30 10:27:11 +00:00
subr_clist.c Quiet warnings on an Alpha. CBSIZE has long type and causes the other 1999-07-01 19:46:36 +00:00
subr_devstat.c Add sysctl descriptions to many SYSCTL_XXXs 1999-05-03 23:57:32 +00:00
subr_disklabel.c Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
subr_diskmbr.c Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
subr_diskslice.c dsopen: Print a message if the unit has an invalid sector size. 1999-06-21 03:48:16 +00:00
subr_dkbad.c Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
subr_log.c Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
subr_module.c
subr_param.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
subr_prf.c ksprintn() may be called with base=2, so redefine MAXNBUF accordingly. 1999-06-07 18:26:26 +00:00
subr_prof.c Fixed profiling of elf kernels. Made high resolution profiling compile 1999-05-06 09:44:57 +00:00
subr_rman.c Make sure that we record the flags in all cases. 1999-06-26 10:27:30 +00:00
subr_scanf.c Only needed to cast array index from char to unsigned char, did not 1999-02-14 20:58:21 +00:00
subr_smp.c Changes in the way that the APs are started appears to have removed the 1999-06-23 23:02:38 +00:00
subr_trap.c Changed the global `idt' from an array to a pointer so that npx.c 1999-06-18 14:32:21 +00:00
subr_xxx.c Try an fix a couple of dev_t/major/minor etc nits. 1999-05-12 22:30:50 +00:00
sys_generic.c Add standard padding argument to pread and pwrite syscall. That should make them 1999-04-04 21:41:28 +00:00
sys_pipe.c Restructure pipe_read in order to eliminate several race conditions. 1999-06-05 03:53:57 +00:00
sys_process.c Moving the initialization for write sooner quiets a warning. 1999-07-01 22:52:40 +00:00
sys_socket.c Add standard padding argument to pread and pwrite syscall. That should make them 1999-04-04 21:41:28 +00:00
syscalls.c Regenerated. 1999-05-13 09:12:57 +00:00
syscalls.master Fixed nonsense arg type `const caddr_t' in the prototype() for utrace(). 1999-05-13 09:09:37 +00:00
sysv_ipc.c Change suser_xxx() to suser() where it applies. 1999-04-27 12:21:16 +00:00
sysv_msg.c Change suser_xxx() to suser() where it applies. 1999-04-27 12:21:16 +00:00
sysv_sem.c Change suser_xxx() to suser() where it applies. 1999-04-27 12:21:16 +00:00
sysv_shm.c For consistency with other implementations, check for the existence 1999-06-19 23:53:13 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Quieten some warnings as a result of changes in ls_items[] constness over 1999-06-26 12:19:03 +00:00
tty_pty.c Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
tty_snoop.c Add Id strings 1999-06-17 23:42:45 +00:00
tty_subr.c Quiet warnings on an Alpha. CBSIZE has long type and causes the other 1999-07-01 19:46:36 +00:00
tty_tb.c
tty_tty.c Simplify cdevsw registration. 1999-05-31 11:29:30 +00:00
tty.c Don't call calcru() on a swapped-out process. calcru() access p_stats, which 1999-05-22 20:10:31 +00:00
uipc_domain.c Redo domain registration to use SYSINITS rather than linker sets. 1999-04-26 08:56:09 +00:00
uipc_mbuf.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
uipc_proto.c Register the local (unix domain) sockets ourselves. 1999-04-26 08:56:53 +00:00
uipc_sockbuf.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
uipc_socket2.c Move the initialisation/tuning of nmbclusters from param.c/machdep.c 1999-07-05 08:52:54 +00:00
uipc_socket.c Reviewed by: the cast of thousands 1999-06-17 23:54:50 +00:00
uipc_syscalls.c Fix warnings in preparation for adding -Wall -Wcast-qual to the 1999-01-27 21:50:00 +00:00
uipc_usrreq.c Divorce "dev_t" from the "major|minor" bitmap, which is now called 1999-05-11 19:55:07 +00:00
vfs_aio.c Slight reorganization of kernel thread/process creation. Instead of using 1999-07-01 13:21:46 +00:00
vfs_bio.c These changes appear to give us benefits with both small (32MB) and 1999-07-08 06:06:00 +00:00
vfs_cache.c Fix a braino in the v_id wraparound code. Give more (current) details 1999-04-24 17:58:14 +00:00
vfs_cluster.c These changes appear to give us benefits with both small (32MB) and 1999-07-08 06:06:00 +00:00
vfs_conf.c Fix warnings in last commit (dev_t is not an int, and not even int 1999-07-03 17:40:31 +00:00
vfs_default.c Add Id strings 1999-06-17 23:42:45 +00:00
vfs_export.c These changes appear to give us benefits with both small (32MB) and 1999-07-08 06:06:00 +00:00
vfs_extattr.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
vfs_init.c * Register sysctl nodes before running sysinits when loading files and 1999-03-07 16:06:41 +00:00
vfs_lookup.c Fix warnings in preparation for adding -Wall -Wcast-qual to the 1999-01-28 00:57:57 +00:00
vfs_mount.c Fix warnings in last commit (dev_t is not an int, and not even int 1999-07-03 17:40:31 +00:00
vfs_subr.c These changes appear to give us benefits with both small (32MB) and 1999-07-08 06:06:00 +00:00
vfs_syscalls.c This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
vfs_vnops.c These changes appear to give us benefits with both small (32MB) and 1999-07-08 06:06:00 +00:00
vnode_if.pl Add a vnode argument to VOP_BWRITE to get rid of the last vnode 1999-06-16 23:27:55 +00:00
vnode_if.sh Add a vnode argument to VOP_BWRITE to get rid of the last vnode 1999-06-16 23:27:55 +00:00
vnode_if.src Add a vnode argument to VOP_BWRITE to get rid of the last vnode 1999-06-16 23:27:55 +00:00