summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>1999-01-21 09:33:07 +0000
committerdillon <dillon@FreeBSD.org>1999-01-21 09:33:07 +0000
commite3c11331d3da9522fa90d60f64c8471682cee71f (patch)
treefd0db212beb3f1e9580483a28faa01e8e7983999
parent99dfef7f2a3dfc1a523806c0828fa21ae009681b (diff)
downloadFreeBSD-src-e3c11331d3da9522fa90d60f64c8471682cee71f.zip
FreeBSD-src-e3c11331d3da9522fa90d60f64c8471682cee71f.tar.gz
The default_pager's interaction with the swap_pager has been reorganized,
and the swap_pager has been completely replaced. The new swap pager uses the new blist radix-tree based bitmap allocator for low level swap allocation and deallocation. The new allocator is effectively O(5) while the old one was O(N), and the new allocator allocates all required memory at init time rather then at allocate memory on the fly at run time. Swap metadata is allocated in clusters and stored in a hash table, eliminating linearly allocated structures. Many, many features have been rewritten or added. Swap space is now reallocated on the fly providing a poor-mans auto defragmentation of swap space. Swap space that is no longer needed is freed on a timely basis so no garbage collection is necessary. Swap I/O is marked B_ASYNC and NFS has been fixed to do the right thing with it, so NFS-based paging now has around 10x the performance as it did before ( previously NFS enforced synchronous I/O for paging ).
-rw-r--r--sys/vm/default_pager.c2
-rw-r--r--sys/vm/swap_pager.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/vm/default_pager.c b/sys/vm/default_pager.c
index 16b7512..b0bd08a 100644
--- a/sys/vm/default_pager.c
+++ b/sys/vm/default_pager.c
@@ -36,7 +36,7 @@
* physically freed after having been cleaned and even then vm_page->swapblk
* is maintained whenever a resident page also has swap backing store.
*
- * $Id: default_pager.c,v 1.16 1998/10/13 08:24:42 dg Exp $
+ * $Id: default_pager.c,v 1.17 1999/01/21 08:29:09 dillon Exp $
*/
#include <sys/param.h>
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index b063520..46eb68f 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -64,7 +64,7 @@
*
* @(#)swap_pager.c 8.9 (Berkeley) 3/21/94
*
- * $Id: swap_pager.c,v 1.107 1999/01/10 01:58:28 eivind Exp $
+ * $Id: swap_pager.c,v 1.108 1999/01/21 08:29:09 dillon Exp $
*/
#include <sys/param.h>
OpenPOWER on IntegriCloud