haiku/src
Ingo Weinhold eb0262fc4c * Reworked vm_soft_fault() and friends:
- While walking down the cache chain, we keep all upper caches locked.
  - When we have to unlock -- when waiting for a busy page or reading a page in
    -- we unlock completely, including the address space, and restart
    vm_soft_fault().
  - Folded fault_get_page() and fault_find_page() into one.
  This simplifies and improves things considerably:
  - We no longer need dummy pages.
  - We no longer need vm_area::no_cache_change.
  - #2710 is fixed, since we no longer hold the address space lock while
    waiting.
* vm_soft_fault(): When we have found our page, we first check whether a page
  is already mapped at the address. If it is already our page, we just change
  its protection. If not, we unmap it first. Fixes race conditions when multiple
  threads fault at the same address at the same time.
* fault_get_page(): When copying a read-only page from a lower cache, no longer
  mark it active, since at least for the fault area it is shadowed from then on.
* vm_set_area_protection(): Fixed potential overflow for in the
  vm_translation_map::protect() call.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-29 12:55:25 +00:00
..
add-ons * Implement read/write_pages using Read()/Write(), io will follow later. 2009-05-29 02:52:11 +00:00
apps gcc 4 fix: missing include. 2009-05-24 15:12:00 +00:00
bin * Includes termios.h in sys/ioctl.h, for TIOCGWINSZ. 2009-05-28 20:16:35 +00:00
build _kern_open_parent_dir has different semantics for the supplied name argument. 2009-02-15 21:10:02 +00:00
data use video/dv instead, use a more generic sniffer rule. Thanks Fredrik! 2009-05-24 17:22:25 +00:00
documentation removed former haiku_book and headersampler tool 2007-10-04 22:15:58 +00:00
kits * various fixes identified by gcc4, provided by Joe Prostko 2009-05-28 20:36:22 +00:00
libs Enable just enough of the message based format used in Icon-O-Matic to allow 2009-05-18 20:15:04 +00:00
preferences * Made our struct stat POSIX compliant again -- the time_t fields have been 2009-05-22 15:15:16 +00:00
servers Simplify dirty region handling when copying regions. Basically the full region 2009-05-24 14:38:09 +00:00
system * Reworked vm_soft_fault() and friends: 2009-05-29 12:55:25 +00:00
tests * fixed gcc4-build of DriverSettingsTest 2009-05-26 15:23:06 +00:00
tools strchr(const char*, ...) returns const char* in C++, identified by gcc 4.4. 2009-05-27 20:07:43 +00:00
Jamfile