NetBSD/sys/uvm
perseant b397c875ae Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now
(there are still some details to work out) but expect that to go
away soon.  To support these basic changes (creation of lfs_putpages,
lfs_gop_write, mods to lfs_balloc) several other changes were made, to
wit:

* Create a writer daemon kernel thread whose purpose is to handle page
  writes for the pagedaemon, but which also takes over some of the
  functions of lfs_check().  This thread is started the first time an
  LFS is mounted.

* Add a "flags" parameter to GOP_SIZE.  Current values are
  GOP_SIZE_READ, meaning that the call should return the size of the
  in-core version of the file, and GOP_SIZE_WRITE, meaning that it
  should return the on-disk size.  One of GOP_SIZE_READ or
  GOP_SIZE_WRITE must be specified.

* Instead of using malloc(...M_WAITOK) for everything, reserve enough
  resources to get by and use malloc(...M_NOWAIT), using the reserves if
  necessary.  Use the pool subsystem for structures small enough that
  this is feasible.  This also obsoletes LFS_THROTTLE.

And a few that are not strictly necessary:

* Moves the LFS inode extensions off onto a separately allocated
  structure; getting closer to LFS as an LKM.  "Welcome to 1.6O."

* Unified GOP_ALLOC between FFS and LFS.

* Update LFS copyright headers to correct values.

* Actually cast to unsigned in lfs_shellsort, like the comment says.

* Keep track of which segments were empty before the previous
  checkpoint; any segments that pass two checkpoints both dirty and
  empty can be summarily cleaned.  Do this.  Right now lfs_segclean
  still works, but this should be turned into an effectless
  compatibility syscall.
2003-02-17 23:48:08 +00:00
..
Makefile
uvm_amap_i.h
uvm_amap.c
uvm_amap.h
uvm_anon.c
uvm_anon.h
uvm_aobj.c
uvm_aobj.h
uvm_bio.c
uvm_ddb.h
uvm_device.c
uvm_device.h
uvm_extern.h
uvm_fault_i.h
uvm_fault.c
uvm_fault.h
uvm_glue.c
uvm_glue.h
uvm_init.c
uvm_io.c
uvm_km.c
uvm_km.h
uvm_loan.c
uvm_loan.h
uvm_map_i.h
uvm_map.c
uvm_map.h
uvm_meter.c
uvm_mmap.c
uvm_object.h
uvm_page_i.h
uvm_page.c Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
uvm_page.h
uvm_pager_i.h
uvm_pager.c
uvm_pager.h Add code to UBCify LFS. This is still behind "#ifdef LFS_UBC" for now 2003-02-17 23:48:08 +00:00
uvm_param.h
uvm_pdaemon.c
uvm_pdaemon.h
uvm_pglist.c
uvm_pglist.h
uvm_pmap.h
uvm_prot.h
uvm_stat.c
uvm_stat.h
uvm_swap.c
uvm_swap.h
uvm_unix.c
uvm_user.c
uvm_vnode.c
uvm.h