#
f9a8f3e7 |
|
05-Jul-2015 |
Michael Lotz <mmlr@mlotz.ch> |
Clean up various whitespace and fix one header guard.
|
#
e50cf876 |
|
02-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved the VM headers into subdirectory vm/. * Renamed vm_cache.h/vm_address_space.h to VMCache.h/VMAddressSpace. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34449 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a477e3cf |
|
01-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Finished renaming of vm_cache to VMCache. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34424 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5c99d639 |
|
22-Jul-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged branch haiku/branches/developer/bonefish/vm into trunk. This introduces the following relevant changes: * VMCache: - Renamed vm_cache to VMCache, merged it with vm_store and made it a C++ class with virtual methods (replacing the store operations). Turned the different store implementations into subclasses. - Introduced MergeStore() callback, changed semantics of Commit(). - Changed locking and referencing semantics. A reference can only be acquired/released with the cache locked. An unreferenced cache is deleted and a mergeable cache merged when it is unlocked. This removes the "busy" state of a cache and simplifies the page fault code. * Added VMAnonymousCache, which will implement swap support (work by Zhao Shuai). It is not integrated and used yet, though. * Enabled the mutex/recursive lock holder asserts. * Fixed DoublyLinkedList::Swap(). * Generalized the low memory handler to a low resource handler. And made semaphores and reserved memory handled resources. Made vm_try_resource_memory() optionally wait (with timeout), and used that feature to reserve memory for areas. ... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26572 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52ecda6e |
|
06-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added some optional KDL command and statistics to the file map implementation. * Turned them on for now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26291 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
80f54692 |
|
06-Oct-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* struct vnode is an opaque type now, removed void* where it was used incorrectly. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22461 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6d4aea47 |
|
25-Sep-2007 |
Axel Dörfler <axeld@pinc-software.de> |
bonefish+axeld: * Removed the vm_cache/vm_store ref_count duality that besides being a bit ugly also created the page dameon cache retrieval problem: now, only areas (and cache consumers) retrieve a reference to the store (and therefore, the vnode). The page daemon doesn't need to care about this at all anymore, and the pseudo references of the vm_cache could be removed again. * Rearranged deletion of vnodes such that its ID can be reused directly after fs_remove_vnode() has been called. * vm_page_allocate_page() no longer panics when it runs out of pages, but just waits for new pages to become available using the new sFreeCondition condition variable - to make sure this happens in an acceptable time frame, it'll trigger a run of the low memory handlers. * Implemented a page_thief() that steals inactive pages from caches and puts them into the free queue. It runs as a low memory handler. * The file cache now sets the usage count on the pages it inserts into the cache (needs some rework though, cache_io() doesn't do it yet). * Instead of panicking, the kernel will currently dead lock in low memory situations, since BFS does a bit too much in bfs_release_vnode(). * Some minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22315 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
58f6e8e5 |
|
17-Jul-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Merged vm_cache_ref and vm_cache to a single structure (Axel & Ingo). * Renamed vm_cache.c to vm_cache.cpp git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21642 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
245aecda |
|
21-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Got rid of vnode_id and mount_id, replaced with ino_t and dev_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21485 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
95839f5c |
|
03-Aug-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The file cache now has another init method that is called after the boot device becomes available. Currently, it opens the "launch_speedup" module (if available), later it should consult a settings file for what to do. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13894 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
18685752 |
|
01-Aug-2005 |
Axel Dörfler <axeld@pinc-software.de> |
cache_prefetch() now comes in two flavours: one with a direct vnode pointer, the other one with usual device/inode ID pair. Both versions now accept an offset/size pair to specify the region of the file to be prefetched - this may be turned into a file_vec_io array later on. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13866 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76017250 |
|
01-Feb-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added some more and better cache notifications. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11203 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4b0c008c |
|
06-Jan-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added some definitions for the generic syscalls. Cache modules should currently be located in the "file_cache" directory - this might or might be changed later. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10602 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5c143f85 |
|
13-Dec-2004 |
Axel Dörfler <axeld@pinc-software.de> |
cache_node_closed() and *_opened() now accept a vm_cache_ref as first parameter instead of a void pointer. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10433 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a16bf97a |
|
01-Dec-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Added preliminary support for cache modules. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10334 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5cf089d6 |
|
03-Sep-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Start of the file cache. For now only exports a vnode store. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8828 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f9a8f3e72773095d5d7b2f2e1ff3eb3e58122f14 |
|
05-Jul-2015 |
Michael Lotz <mmlr@mlotz.ch> |
Clean up various whitespace and fix one header guard.
|
#
e50cf8765be50a7454c9488db38b638cf90805af |
|
02-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved the VM headers into subdirectory vm/. * Renamed vm_cache.h/vm_address_space.h to VMCache.h/VMAddressSpace. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34449 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a477e3cf200097774f88ed4e4134f87674a2a063 |
|
01-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Finished renaming of vm_cache to VMCache. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34424 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5c99d639708df9b4e2cc847b38d510149d19ec78 |
|
22-Jul-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged branch haiku/branches/developer/bonefish/vm into trunk. This introduces the following relevant changes: * VMCache: - Renamed vm_cache to VMCache, merged it with vm_store and made it a C++ class with virtual methods (replacing the store operations). Turned the different store implementations into subclasses. - Introduced MergeStore() callback, changed semantics of Commit(). - Changed locking and referencing semantics. A reference can only be acquired/released with the cache locked. An unreferenced cache is deleted and a mergeable cache merged when it is unlocked. This removes the "busy" state of a cache and simplifies the page fault code. * Added VMAnonymousCache, which will implement swap support (work by Zhao Shuai). It is not integrated and used yet, though. * Enabled the mutex/recursive lock holder asserts. * Fixed DoublyLinkedList::Swap(). * Generalized the low memory handler to a low resource handler. And made semaphores and reserved memory handled resources. Made vm_try_resource_memory() optionally wait (with timeout), and used that feature to reserve memory for areas. ... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26572 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52ecda6ecfe4c9710969c0ece73e267bb4702df9 |
|
06-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added some optional KDL command and statistics to the file map implementation. * Turned them on for now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26291 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
80f54692912d728f5780e9d78d7643828edaaa2a |
|
06-Oct-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* struct vnode is an opaque type now, removed void* where it was used incorrectly. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22461 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6d4aea47962e0ea08b81327fbbf93b32ae821177 |
|
25-Sep-2007 |
Axel Dörfler <axeld@pinc-software.de> |
bonefish+axeld: * Removed the vm_cache/vm_store ref_count duality that besides being a bit ugly also created the page dameon cache retrieval problem: now, only areas (and cache consumers) retrieve a reference to the store (and therefore, the vnode). The page daemon doesn't need to care about this at all anymore, and the pseudo references of the vm_cache could be removed again. * Rearranged deletion of vnodes such that its ID can be reused directly after fs_remove_vnode() has been called. * vm_page_allocate_page() no longer panics when it runs out of pages, but just waits for new pages to become available using the new sFreeCondition condition variable - to make sure this happens in an acceptable time frame, it'll trigger a run of the low memory handlers. * Implemented a page_thief() that steals inactive pages from caches and puts them into the free queue. It runs as a low memory handler. * The file cache now sets the usage count on the pages it inserts into the cache (needs some rework though, cache_io() doesn't do it yet). * Instead of panicking, the kernel will currently dead lock in low memory situations, since BFS does a bit too much in bfs_release_vnode(). * Some minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22315 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
58f6e8e5e4aeee797ecd3bb7bed17d5a3a2029c0 |
|
17-Jul-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Merged vm_cache_ref and vm_cache to a single structure (Axel & Ingo). * Renamed vm_cache.c to vm_cache.cpp git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21642 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
245aecda8ac43fc2c0c0bac6a7e4016efa9b71e1 |
|
21-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Got rid of vnode_id and mount_id, replaced with ino_t and dev_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21485 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
95839f5c9276596236cd5b6658465e588e2811e0 |
|
03-Aug-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The file cache now has another init method that is called after the boot device becomes available. Currently, it opens the "launch_speedup" module (if available), later it should consult a settings file for what to do. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13894 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
186857529ef189e9f3f44b567e07e75a9be38b9a |
|
01-Aug-2005 |
Axel Dörfler <axeld@pinc-software.de> |
cache_prefetch() now comes in two flavours: one with a direct vnode pointer, the other one with usual device/inode ID pair. Both versions now accept an offset/size pair to specify the region of the file to be prefetched - this may be turned into a file_vec_io array later on. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13866 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76017250df80f32bb1ac5e487cbc006a097121fb |
|
01-Feb-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added some more and better cache notifications. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11203 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4b0c008cc5448aec97603292dbc43165978c7095 |
|
06-Jan-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Added some definitions for the generic syscalls. Cache modules should currently be located in the "file_cache" directory - this might or might be changed later. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10602 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5c143f85add107025b6c999dc1fbb9924d520aeb |
|
13-Dec-2004 |
Axel Dörfler <axeld@pinc-software.de> |
cache_node_closed() and *_opened() now accept a vm_cache_ref as first parameter instead of a void pointer. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10433 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a16bf97a7d9187877106a2939427ad611a01332f |
|
01-Dec-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Added preliminary support for cache modules. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10334 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5cf089d64fa13a0e1021e33f63db139ead1efcb6 |
|
03-Sep-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Start of the file cache. For now only exports a vnode store. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8828 a95241bf-73f2-0310-859d-f6bbb57e9c96
|