c4546ea038
-Turns out the area removal routine had a massive race condition inside vm_put_area(). Basically the area was removed from the address space's area list before the pages were unmapped, so the vm could (and would) recycle the space before the pages were finally unmapped. It was completely reproducable on my machine during initialization of a bunch of storage drivers that were bringing the locked_pool module into and out of existence, which caused a thread to be spawned and stopped in rapid sucession. On a dual processor machine, it was possible for the new thread to be started up while the old one was still shutting down, and the kernel stack of the new one would get wiped out. Note, there still is a page ref counting problem with this area removal code. It doesn't decrement the ref count of the page as it unmaps it. Will have to figure that out. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19549 a95241bf-73f2-0310-859d-f6bbb57e9c96 |
||
---|---|---|
.. | ||
add-ons | ||
apps | ||
bin | ||
build | ||
data | ||
documentation | ||
kits | ||
libs | ||
preferences | ||
servers | ||
system | ||
tests | ||
tools | ||
Jamfile |