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 ).
This commit is contained in:
Matthew Dillon 1999-01-21 09:33:07 +00:00
parent 50c7d0d513
commit 9f6fed9017
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=42966
2 changed files with 2 additions and 2 deletions

View File

@ -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>

View File

@ -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>