Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jan 1999 02:01:49 -0800 (PST)
From:      Matt Dillon <dillon@FreeBSD.ORG>
To:        cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   cvs commit: src/sys/vm vm_page.c
Message-ID:  <199901211001.CAA23305@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
dillon      1999/01/21 02:01:49 PST

  Modified files:
    sys/vm               vm_page.c 
  Log:
      The hash table used to be a table of doubly-link list headers ( two
      pointers per entry ).  The table has been changed to a singly linked
      list of vm_page_t pointers.  The table has been doubled in size, but
      the entries only take half the space so a net-zero change in memory use.
  
      The hash function has been changed, hopefully for the better.  The
      combination of the larger hash table size of changed function should
      keep the chain length down to a reasonable number (0-3, average 1).
  
      vm_object->page_hint has been removed.  This 'optimization' was not
      only never needed, but costs as much as a hash chain link to implement.
      While having page_hint in vm_object might result in better locality
      of reference, the cost is not worth the space in vm_object or the
      extra instructions in my view.
  
      vm_page_alloc*() functions have been inlined and call a generalized
      non-inlined vm_page_alloc_toq() which combines the standard alloc
      and zero-page alloc functions together, reducing code size and the L1
      cache footprint.  Some reordering has been done... not much.  The
      delinking code should be faster ( because unlinking a doubly-linked list
      requires four memory ops and unlinking a singly linked list only requires
      two ), and we get a hash consistancy check for free.
  
      vm_page_rename() now automatically sets the page's dirty bits.
  
      vm_page_alloc() does not try to manually inline freeing a cache page.
      Instead, it now properly calls vm_page_free(m) ... vm_page_free() is
      really too complex to manually inline.
  
      vm_await(), supporting asleep(), has been added.
  
  Revision  Changes    Path
  1.118     +1 -1      src/sys/vm/vm_page.c

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901211001.CAA23305>