haiku/headers
Axel Dörfler fe70b87d91 Fixed a couple of issues in our VM:
* we now always flush the TLBs after having unmapped some pages.
* vm_soft_fault() could traverse to a source cache while it was being collapsed
  by vm_cache_remove_consumer() - this is now no longer possible as the latter
  marks the cache as busy when doing so, and the former now tests this flag and
  locks the cache (via the new fault_acquire_locked_source() function).
* if fault_acquire_locked_source() fails with B_BUSY, the current cache is locked
  again, and tested again for the page - as it might have been moved upwards to it
  with the destruction of its former source.
* The cache delivering the page for vm_soft_fault() is now locked until the end;
  it can no longer go away before having actually mapped the page into the area.
* This also fixes the issue where pages would get lost as vm_soft_fault() put the
  page in the active list, no matter if its cache still existed.
* Also, we now keep a reference of to a cache in case a dummy page is inserted; this
  makes again sure that it doesn't go away during the execution of vm_soft_fault()
  (which could even add this page to the free list...).
* divided vm_soft_fault() into several smaller functions which should make it much
  more readable.
* Added a "cache_chain" KDL command that dumps the whole chain until the bottom
  when giving a pointer to a vm_cache as parameter.
* now usually call vm_cache_acquire_ref() before map_backing_store(), even though
  it shouldn't be really needed (I added it for debugging purposes).
* Some minor cleanup.
* NOTE: a major problem still persists: when removing a vm_cache, it's possible
  that some of its pages are still mapped, and there is currently no mechanism
  to get rid of these mappings! I've added TODO comments into vm_cache.c where
  appropriate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-01 12:12:54 +00:00
..
build Fixed non-Haiku build targets for libicon 2007-01-21 03:19:27 +00:00
compatibility/bsd More tweaks to the libbsd.so compatibility library: 2006-12-13 16:26:43 +00:00
cpp GCC 4 fix. 2005-12-11 16:22:51 +00:00
glibc Merged changes from branch build_system_redesign at revision 14573. 2005-10-29 16:27:43 +00:00
gnu adding gnu/termcap.h : is a copy of src/libs/termcap/termcap.h 2004-06-01 12:38:47 +00:00
legacy/network setsockopt and getsockopt use int as others functions 2006-06-23 14:19:11 +00:00
libs Turned off patented colored subpixel rendering. 2007-01-29 12:36:08 +00:00
os Added convenience methods to allow a group or grid layout's insets to be set 2007-01-31 20:30:20 +00:00
posix setpgrp() returns a pid_t, not an int. 2007-01-29 13:31:24 +00:00
private Fixed a couple of issues in our VM: 2007-02-01 12:12:54 +00:00
tools Fixed the build of the cppunit stuff; if you are using IMPORT/EXPORT you should 2004-05-05 16:19:03 +00:00