Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 May 2000 05:50:19 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/alpha/alpha pmap.c src/sys/alpha/include pmap.h src/sys/cam/scsi scsi_da.c src/sys/dev/ata ata-disk.c src/sys/i386/i386 mem.c pmap.c src/sys/i386/include pmap.h src/sys/pc98/pc98 wd.c src/sys/vm pmap.h swap_pager.c vm_fault.c ...
Message-ID:  <200005211250.FAA68825@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
peter       2000/05/21 05:50:19 PDT

  Modified files:
    sys/alpha/alpha      pmap.c 
    sys/alpha/include    pmap.h 
    sys/cam/scsi         scsi_da.c 
    sys/dev/ata          ata-disk.c 
    sys/i386/i386        mem.c pmap.c 
    sys/i386/include     pmap.h 
    sys/pc98/pc98        wd.c 
    sys/vm               pmap.h swap_pager.c vm_fault.c vm_kern.c 
                         vm_mmap.c vm_object.c vm_page.c vm_page.h 
                         vm_pageout.c vnode_pager.c 
  Log:
  Implement an optimization of the VM<->pmap API.  Pass vm_page_t's directly
  to various pmap_*() functions instead of looking up the physical address
  and passing that.  In many cases, the first thing the pmap code was doing
  was going to a lot of trouble to get back the original vm_page_t, or
  it's shadow pv_table entry.
  
  Inspired by: John Dyson's 1998 patches.
  
  Also:
  Eliminate pv_table as a seperate thing and build it into a machine
  dependent part of vm_page_t.  This eliminates having a seperate set of
  structions that shadow each other in a 1:1 fashion that we often went to
  a lot of trouble to translate from one to the other. (see above)
  This happens to save 4 bytes of physical memory for each page in the
  system.  (8 bytes on the Alpha).
  
  Eliminate the use of the phys_avail[] array to determine if a page is
  managed (ie: it has pv_entries etc).  Store this information in a flag.
  Things like device_pager set it because they create vm_page_t's on the
  fly that do not have pv_entries.  This makes it easier to "unmanage" a
  page of physical memory (this will be taken advantage of in subsequent
  commits).
  
  Add a function to add a new page to the freelist.  This could be used
  for reclaiming the previously wasted pages left over from preloaded
  loader(8) files.
  
  Reviewed by:	dillon
  
  Revision  Changes    Path
  1.38      +137 -209  src/sys/alpha/alpha/pmap.c
  1.7       +4 -4      src/sys/alpha/include/pmap.h
  1.48      +3 -5      src/sys/cam/scsi/scsi_da.c
  1.68      +3 -5      src/sys/dev/ata/ata-disk.c
  1.82      +3 -6      src/sys/i386/i386/mem.c
  1.254     +163 -228  src/sys/i386/i386/pmap.c
  1.66      +4 -4      src/sys/i386/include/pmap.h
  1.111     +4 -5      src/sys/pc98/pc98/wd.c
  1.34      +11 -11    src/sys/vm/pmap.h
  1.144     +3 -3      src/sys/vm/swap_pager.c
  1.111     +3 -4      src/sys/vm/vm_fault.c
  1.64      +2 -3      src/sys/vm/vm_kern.c
  1.112     +3 -3      src/sys/vm/vm_mmap.c
  1.176     +2 -2      src/sys/vm/vm_object.c
  1.151     +29 -15    src/sys/vm/vm_page.c
  1.76      +6 -3      src/sys/vm/vm_page.h
  1.156     +9 -9      src/sys/vm/vm_pageout.c
  1.123     +4 -4      src/sys/vm/vnode_pager.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?200005211250.FAA68825>