freebsd with flexible iflib nic queues
Go to file
David Greenman 33811d39ec First round of changes from John Dyson and myself to the VM system. This
set improves performance and fixes the following problems (description
from John Dyson):

1.	Growing swap space problem in both static usage and
	in situations with lots of fork/execs in heavy paging
	situations.

2.	Sparse swap space allocation (internal fragmentation.)

3.	General swap_pager slowness.

Additionally, the new swap_pager also provides hooks for multi-page
I/O that is currently being developed (in early testing phases.)

Problem #1 is a result of a problem where objects cannot be collapsed
once a pager has been allocated for them.  This problem has been solved
by relaxing the restriction by allowing the pages contained in a shadow
object's pager be copied to the parent object's pager.  The copy is
afforded by manipulating pointers to the disk blocks on the swap space.
Since an improved swap_pager has already been developed with the data
structures to support the copy operation, this new swap_pager has been
introduced.  Also, shadow object bypass in the collapse code has been
enhanced to support checking for pages on disk.  The vm_pageout daemon
has also been modified to defer creation of an object's pager when the
object's shadow is paging.  This allows efficient immediate collapsing
of a shadow into a parent object under many circumstances without the
creation of an intermediate pager.

Problem #2 is solved by the allocation data structures and algorithms
in the new swap_pager.  Additionally, a newer version of this new swap_pager
is being tested that permits multiple page I/O and mitigation of the
fragmentation problems associated with allocation of large contiguous blocks
of swap space.

Problem #3 is addressed by better algorithms and a fix of a couple of bugs
in the swap_pager.  Additionally, this new pager has a growth path allowing
multi-page inputs from disk.  Approximately 50% performance improvement can
be expected under certain circumstances when using this pager in the standard
single page mode.

(Actually, I've seen more like twice the speed in my tests. -DLG)
1993-12-22 12:51:39 +00:00
bin Document the new, less restrictive, behavior of the matching operator. 1993-10-04 22:07:27 +00:00
etc Support for automatically running ntpdate and xntpd. 1993-12-21 21:28:12 +00:00
gnu Fixed Makefile per bug report from Julian Stacey. There was an extra DESTDIR 1993-12-16 21:51:27 +00:00
include Added link.h for shared libs. 1993-11-03 23:48:30 +00:00
lib/csu/i386 -r option incorrectly removed: 1993-11-18 00:08:03 +00:00
libexec Broke sbrk() out of rtld as part of general cleanup. 1993-12-11 21:06:00 +00:00
sbin Fix sign of offset diff. 1993-12-20 01:53:27 +00:00
share/man/man4 Added octave-tracking. 1993-11-09 02:38:17 +00:00
sys First round of changes from John Dyson and myself to the VM system. This 1993-12-22 12:51:39 +00:00
usr.bin Fixed Makefile per bug report from Julian Stacey. There was an extra DESTDIR 1993-12-16 21:51:27 +00:00
usr.sbin Needed to change the LDADD+= and DPADD+= depending on if obj directories 1993-12-22 11:34:09 +00:00