haiku/headers/private
Ingo Weinhold 40bb94819e * Removed useless return parameter from vm_remove_all_page_mappings().
* Added vm_clear_page_mapping_accessed_flags() and
  vm_remove_all_page_mappings_if_unaccessed(), which combine the functionality
  of vm_test_map_activation(), vm_clear_map_flags(), and
  vm_remove_all_page_mappings(), thus saving lots of calls to translation map
  methods. The backend is the new method
  VMTranslationMap::ClearAccessedAndModified().
* Started to make use of the cached page queue and changed the meaning of the
  other non-free queues slightly:
  - Active queue: Contains mapped pages that have been used recently.
  - Inactive queue: Contains mapped pages that have not been used recently. Also
    contains unmapped temporary pages.
  - Modified queue: Contains unmapped modified pages.
  - Cached queue: Contains unmapped unmodified pages (LRU sorted).
  Unless we're actually low on memory and actively do paging, modified and
  cached queues only contain non-temporary pages. Cached pages are considered
  quasi free. They still belong to a cache, but since they are unmodified and
  unmapped, they can be freed immediately. And this is what
  vm_page_[try_]reserve_pages() do now when there are no more actually free
  pages at hand. Essentially this means that pages storing cached file data,
  unless mmap()ped, no longer are considered used and don't contribute to page
  pressure. Paging will not happen as long there are enough free + cached pages
  available.
* Reimplemented the page daemon. It no longer scans all pages, but instead works
  the page queues. As long as the free pages situation is harmless, it only
  iterates through the active queue and deactivates pages that have not been
  used recently. When paging occurs it additionally scans the inactive queue and
  frees pages that have not been used recently.
* Changed the page reservation/allocation interface:
  vm_page_[try_]reserve_pages(), vm_page_unreserve_pages(), and
  vm_page_allocate_page() now take a vm_page_reservation structure pointer.
  The reservation functions initialize the structure -- currently consisting
  only of a count member for the number of still reserved pages.
  vm_page_allocate_page() decrements the count and vm_page_unreserve_pages()
  unreserves the remaining pages (if any). Advantages are that reservation/
  unreservation mismatches cannot occur anymore, that vm_page_allocate_page()
  can verify that the caller has indeed a reserved page left, and that there's
  no unnecessary pressure on the free page pool anymore. The only disadvantage
  is that the vm_page_reservation object needs to be passed around a bit.
* Reworked the page reservation implementation:
  - Got rid of sSystemReservedPages and sPageDeficit. Instead
    sUnreservedFreePages now actually contains the number of free pages that
    have not yet been reserved (it cannot become negative anymore) and the new
    sUnsatisfiedPageReservations contains the number of pages that are still
    needed for reservation.
  - Threads waiting for reservations do now add themselves to a waiter queue,
    which is ordered by descending priority (VM priority and thread priority).
    High priority waiters are served first when pages become available.
  Fixes #5328.
* cache_prefetch_vnode(): Would reserve one less page than allocated later, if
  the size wasn't page aligned.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-03 18:53:52 +00:00
..
app * Added private methods get_app_server_port() (that stores the server port, 2009-12-01 07:53:09 +00:00
audio Move this to media/, seems audio/ is only for old stuff. 2007-08-29 12:31:55 +00:00
binary_compatibility * Added a basic tool tip API, and implementation. 2009-08-03 14:47:41 +00:00
bluetooth - Move bluetooth net_device module to a independent module HCI, remake API interfaces 2010-01-17 15:46:36 +00:00
debug Added BDebugEventInputStream::Seek() to seek in the stream. Works for data 2009-07-28 18:51:38 +00:00
device Fix Device Kit build in debug mode. 2009-09-13 01:30:38 +00:00
drivers I am trying to help a bit with the transition from IDE to ATA stack. 2009-05-10 17:04:04 +00:00
firewire wakeup() means wake any waiting threads, so we use the relevant flags. this gives a reliable dv receive stream here. 2009-05-24 23:15:04 +00:00
fs_shell * Removed the O_* modes that we currently don't and probably won't support 2009-11-26 14:17:46 +00:00
graphics forgot to add this file in r33815 2009-10-28 21:37:38 +00:00
haiku_package Implemented a tool ("package") that implements creation and extraction of 2009-11-13 13:45:49 +00:00
input * Removed the pretty useless "Multifinger scrolling" option - it's now always 2009-10-06 14:30:57 +00:00
interface * Replace the truncate_string() helper function with a new, simplified version. 2010-02-01 18:43:03 +00:00
kernel * Removed useless return parameter from vm_remove_all_page_mappings(). 2010-02-03 18:53:52 +00:00
libroot * This fixes the remaining warnings in exit.c 2009-11-26 17:00:09 +00:00
locale * Moved three locale-related headers back into a safe place (where no 2009-10-13 17:15:49 +00:00
mail Preparations for removing __BEOS__ from the compiler defines. 2008-10-23 21:46:26 +00:00
media * Revert the reverse the addons iteration of r35121. 2010-01-17 20:05:01 +00:00
midi Made all server version and signatures consistent, and thus closing bug #909. 2006-10-22 17:56:02 +00:00
mount * Removed now obsolete notification (this was not even used in Tracker 2009-10-07 19:31:57 +00:00
net * Removed the interface fallback from the datalink module's is_local_address(). 2009-12-03 14:31:39 +00:00
print * first steps towards a new printer api... 2008-08-10 23:26:38 +00:00
runtime_loader Removed unused elf_version_info::hidden field. 2009-05-21 13:11:54 +00:00
screen_saver Suggestion from Rene: 2009-10-01 20:48:14 +00:00
shared Make more defined classes visible outside the BPrivate namespace when including 2010-01-14 21:49:53 +00:00
storage * Construct the MIME data base directories lazily. 2009-12-01 08:52:13 +00:00
support More style guide fixes. Removed a lot of preprocessing / conditional building, with intent to fix or remove. Moved urlwrapper class declaration to its header file. Renamed things for clarity. Removed 5 extra mimetypes for IE shortcuts. (We have one, with sniffing rule and extension.) Moved the UnurlString() back to urlwrapper.cpp and renamed it _DecodeUrlString(). Tweaked copyright clauses. A lot more needs fixing, esp. in urlwrapper but also in BUrl, and I intend to keep working on this until we're satisfied. Let me know of any remaining/added style violations! Feedback welcome. 2009-05-13 22:19:42 +00:00
syslog_daemon Implemented syslog support for the kernel debug output. Not fancy at all yet, but 2006-01-24 20:28:52 +00:00
system Added support for I/O scheduling events to the system profiler interface. 2009-12-19 14:33:29 +00:00
textencoding missing comment tokens 2007-06-20 21:20:11 +00:00
tracker Overlooked this with my previous Trash-related changes: updated NavMenu to be 2010-01-17 17:35:06 +00:00
usb_vision * added a bunch of drivers by Siarzhuk Zharski 2006-05-29 09:54:03 +00:00
userlandfs Haiku defines B_BEOS_VERSION_5, so the code didn't work as intended. On Haiku, 2010-01-14 21:50:50 +00:00
vmdk Moved vmdkimage.h to a shareable place, cleaned it up a bit, and renamed it to 2009-10-01 03:08:46 +00:00