haiku/headers/private
Ingo Weinhold 47c40a10a1 * Prefixed memset_physical() and memcpy_to_physical() with "vm_",
added vm_memcpy_from_physical() and vm_memcpy_physical_page(), and
  added respective functions to the vm_translation_map operations. The
  architecture specific implementation can now decide how to implement
  them most efficiently. Added generic implementations that can be used,
  though.
* Changed vm_{get,put}_physical_page(). The former no longer accepts
  flags (the only flag PHYSICAL_PAGE_DONT_WAIT wasn't needed anymore).
  Instead it returns an implementation-specific handle that has to be
  passed to the latter. Added vm_{get,put}_physical_page_current_cpu()
  and *_debug() variants, that work only for the current CPU,
  respectively when in the kernel debugger. Also adjusted the
  vm_translation_map operations accordingly.
* Made consequent use of the physical memory operations in the source
  tree.
* Also adjusted the m68k and ppc implementations with respect to the
  vm_translation_map operation changes, but they are probably broken,
  nevertheless.
* For x86 the generic physical page mapper isn't used anymore. It is
  suboptimal in any case. For systems with small memory it is too much
  overhead, since one can just map the complete physical memory (that's
  not done yet, though). For systems with large memory it counteracts
  the VM strategy to reuse the least recently used pages. Since those
  pages will most likely not be mapped by the page mapper anymore, it
  will keep remapping chunks. This was also the reason why building
  Haiku in Haiku was significantly faster with only 256 MB RAM (since
  that much could be kept mapped all the time).
  Now we're using a different strategy: We have small pools of virtual
  page slots per CPU that are used for the physical page operations
  (memset_physical(), memcpy_*_physical()) with CPU-pinned thread.
  Furthermore we have four slots per translation map, which are used to
  map page tables.

These changes speed up the Haiku image build in Haiku significantly. On
my Core2 Duo 2.2 GHz 2 GB machine about 40% to 20 min 40 s (KDEBUG
disabled, block cache debug disabled). Still more than factor 3 slower
than FreeBSD and Linux, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 00:06:09 +00:00
..
app Patch by Artur Wyszynski with some changes by myself: 2008-10-15 19:47:00 +00:00
audio Move this to media/, seems audio/ is only for old stuff. 2007-08-29 12:31:55 +00:00
binary_compatibility bonefish + zooey: 2008-10-15 09:29:06 +00:00
bluetooth Header for a common kernel module to handle all BT Stack data structures. Its sources can wait... 2008-10-14 20:50:44 +00:00
debug Added functionality for iterating through the symbols of a debugged 2008-09-15 12:47:59 +00:00
device Code cleanup 2008-08-23 11:16:14 +00:00
disk_scanner missing comment tokens 2007-06-20 21:30:00 +00:00
drivers * Build fix: this should have been part of the last commit. 2008-08-18 11:03:03 +00:00
firewire replaced benaphore with mutex 2008-05-31 19:50:53 +00:00
fs_shell * Added a flag B_DISK_SYSTEM_SUPPORTS_WRITING to determine whether or not a 2008-10-13 22:32:27 +00:00
graphics Remove that cirrus driver I never really started on. QEMU is getting vmware graphics support anyway now. 2008-10-11 15:05:11 +00:00
input Slightly increased the default key repeat rate to make it at least 2008-02-22 10:53:27 +00:00
interface Save one check in certain situations. 2008-10-14 13:16:44 +00:00
kernel * Prefixed memset_physical() and memcpy_to_physical() with "vm_", 2008-10-20 00:06:09 +00:00
libroot * Retry in benaphore_lock() when interrupted. 2008-09-07 15:27:14 +00:00
mail * part of libbe_test build fix... why is the _IMPEXP stuff there in the 2007-10-21 15:19:25 +00:00
media - Implemented MediaExtractor::Copyright, which just calls the instantiated reader 2008-05-07 21:09:56 +00:00
midi Made all server version and signatures consistent, and thus closing bug #909. 2006-10-22 17:56:02 +00:00
net * Actually implemented the SO_BINDTODEVICE socket option I added some time ago. 2008-10-11 22:10:31 +00:00
opengl/GL/internal updated mesa to 7.2 2008-10-13 19:37:51 +00:00
print * first steps towards a new printer api... 2008-08-10 23:26:38 +00:00
runtime_loader * Threw away the broken stat() vs. _stat() mechanism to allow for more fields 2008-10-10 22:13:05 +00:00
screen_saver * ScreenCornerSelector is now a BControl and fully keyboard navigable. 2006-06-09 16:03:16 +00:00
shared Applied patch by Stephen Deken: 2008-10-16 19:10:10 +00:00
storage * Cleanup. 2008-10-19 13:17:29 +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 * Prefixed memset_physical() and memcpy_to_physical() with "vm_", 2008-10-20 00:06:09 +00:00
textencoding missing comment tokens 2007-06-20 21:20:11 +00:00
tracker Quite a cleanup action to avoid polluting the global namespace with private 2008-09-20 15:08:40 +00:00
usb_vision * added a bunch of drivers by Siarzhuk Zharski 2006-05-29 09:54:03 +00:00
userlandfs * Renamed fs/vfs_select.cpp to wait_for_objects.cpp and got rid of 2007-10-02 19:47:31 +00:00