haiku/headers/private/kernel
Axel Dörfler fe70b87d91 Fixed a couple of issues in our VM:
* we now always flush the TLBs after having unmapped some pages.
* vm_soft_fault() could traverse to a source cache while it was being collapsed
  by vm_cache_remove_consumer() - this is now no longer possible as the latter
  marks the cache as busy when doing so, and the former now tests this flag and
  locks the cache (via the new fault_acquire_locked_source() function).
* if fault_acquire_locked_source() fails with B_BUSY, the current cache is locked
  again, and tested again for the page - as it might have been moved upwards to it
  with the destruction of its former source.
* The cache delivering the page for vm_soft_fault() is now locked until the end;
  it can no longer go away before having actually mapped the page into the area.
* This also fixes the issue where pages would get lost as vm_soft_fault() put the
  page in the active list, no matter if its cache still existed.
* Also, we now keep a reference of to a cache in case a dummy page is inserted; this
  makes again sure that it doesn't go away during the execution of vm_soft_fault()
  (which could even add this page to the free list...).
* divided vm_soft_fault() into several smaller functions which should make it much
  more readable.
* Added a "cache_chain" KDL command that dumps the whole chain until the bottom
  when giving a pointer to a vm_cache as parameter.
* now usually call vm_cache_acquire_ref() before map_backing_store(), even though
  it shouldn't be really needed (I added it for debugging purposes).
* Some minor cleanup.
* NOTE: a major problem still persists: when removing a vm_cache, it's possible
  that some of its pages are still mapped, and there is currently no mechanism
  to get rid of these mappings! I've added TODO comments into vm_cache.c where
  appropriate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-01 12:12:54 +00:00
..
arch Applied patch by Vasilis Kaoutsis: now checks for the MSR feature as well; obviously 2007-01-22 14:45:50 +00:00
boot propagate required settings for the remote disk from boot loader to kernel (client-ip, server-ip, server-port) 2007-01-12 22:27:48 +00:00
disk_device_manager added disk systems rescan to DiskDeviceManager, and called it in the post init phase 2006-09-04 12:37:56 +00:00
fs * Factored out the vnode disconnection code from fs_unmount() to a separate 2006-03-28 01:13:12 +00:00
platform/openfirmware Added some PPC support to the PCI bus manager. We scan the Open Firmware 2006-01-26 15:21:31 +00:00
util Moved datastore implementation into net_buffer.cpp - there is no reason to clobber the kernel with it. 2006-09-28 18:27:30 +00:00
block_cache.h First step into a new block allocation strategy for the block_cache 2005-05-13 18:18:28 +00:00
boot_device.h Moved declaration of gBootDevice into its own header. 2005-12-12 16:06:33 +00:00
boot_item.h The boot item list was not initialized; this was no problem, though, as 2005-06-13 13:01:13 +00:00
cbuf.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
console.h Made the header C++ safe. 2005-05-26 09:08:54 +00:00
cpu.h Removed the extra info struct in the cpu_ent union and made said union a struct instead. Same as r1137 in NewOS. 2006-04-29 22:38:19 +00:00
debug.h Corrected the repeat checks (did not compare the right buffers) and added a length argument to debug_puts() to safe the strlen in the syslog case. Also removed some leftover. 2006-04-03 20:48:30 +00:00
elf32.h * Improved kernel ELF loader (and made it more similar to the one from the boot 2006-03-26 15:58:43 +00:00
elf_priv.h * Improved kernel ELF loader (and made it more similar to the one from the boot 2006-03-26 15:58:43 +00:00
elf.h Renamed elf_lookup_symbol_address() to elf_debug_lookup_symbol_address() and 2005-08-22 20:35:42 +00:00
file_cache.h The file cache now has another init method that is called after the boot 2005-08-03 17:25:03 +00:00
frame_buffer_console.h Some work in progress of the MTRR support. Shouldn't do any harm yet :-) 2005-12-13 00:06:52 +00:00
generic_syscall.h As suggested by Ingo, the "subsystem" parameter is now a string. That allows 2004-12-14 17:09:06 +00:00
int.h Changed the way handlers for edge triggered interrupt are called: now, we 2006-04-30 13:56:21 +00:00
kdevice_manager.h added a jam rule AddDriverRegistrationToHaikuImage to add device mappings on the image 2006-11-29 19:09:45 +00:00
kdriver_settings.h Added driver_settings support to the kernel_args structure. 2005-01-10 07:36:08 +00:00
kernel_daemon.h Added the kernel_daemon.h header which defines the init function for the 2003-01-26 17:27:42 +00:00
kernel.h Enabled debugging kernel stacks by default for now. 2006-03-05 18:05:33 +00:00
kimage.h Added a image_debug_lookup_user_symbol_address() that one day may find symbol names 2005-11-04 17:25:58 +00:00
kmodule.h Added function prototypes for the kernel private load_module() and unload_module() calls. 2005-01-18 02:34:00 +00:00
kscheduler.h Changed the boot procedure a bit. 2005-10-25 16:59:12 +00:00
ksignal.h Changed the signal handling code so that handle_signals() can be called without 2005-10-20 16:56:04 +00:00
ksyscalls.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
lock.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
memheap.h * Even though our current heap is a temporary solution, the heap size depends 2006-03-19 15:02:21 +00:00
messaging.h Added _user_unregister_messaging_service(). Fixed second send_message() proto. 2005-01-24 01:19:03 +00:00
MessagingServiceDefs.h Removed obsolete struct. 2005-01-30 01:11:33 +00:00
port.h We now have a (private) writev_port_etc() call. This could be used to avoid 2005-07-13 23:55:15 +00:00
real_time_clock.h Added a _kern_get_timezone() syscall that can be used without needing to 2006-03-14 14:29:56 +00:00
real_time_data.h The real_time_data structure contains an architecture specific 2006-01-04 02:17:59 +00:00
safemode.h ACPI boot menu item is for bios_ia32 2007-01-13 19:55:14 +00:00
sem.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
smp.h * We now support the global page feature of x86 processors that prevents 2005-12-14 17:07:37 +00:00
syscall_process_info.h Added syscalls for various process/group/session related functions. 2004-10-14 14:31:31 +00:00
syscalls.h Removed sysctl(), there is no need for this BSD-ish call. 2006-06-29 09:37:06 +00:00
system_info.h Extended the get_system_info() mechanism; it now gets info about threads/teams 2004-11-30 21:06:11 +00:00
team.h * Renamed get_team_death_entry() to team_get_death_entry() and make it available 2007-01-09 23:58:59 +00:00
thread_types.h * wait_for_child() now behaves correctly when waiting for children of a specific 2007-01-29 15:33:31 +00:00
thread.h * Added a wait_for_thread_etc() function that allows specifying semaphore flags 2006-03-08 16:41:03 +00:00
timer.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
tls.h Added another argument parameter for the thread creation code. Helps 2003-04-18 09:21:22 +00:00
user_atomic.h renamed atomic_read() into atomic_get() (since we already have atomic_set(), but not a atomic_write()) 2003-08-31 01:21:56 +00:00
user_debugger.h * Fail, if debug_thread() is invoked for the debug nub thread. 2005-11-03 00:40:36 +00:00
user_runtime.h Added a private call to get the dependencies of a loaded image. This will be used 2006-10-06 11:40:20 +00:00
vfs.h Improved error reporting when a failure to find/mount the root device occurs. 2007-01-12 18:09:15 +00:00
vm_address_space.h Separated vm_address_space.h from vm.h. 2005-12-20 15:54:45 +00:00
vm_cache.h * vm_copy_on_write_area() did not always correctly divide the ref_count of the 2007-01-14 18:41:57 +00:00
vm_low_memory.h Added new function vm_low_memory_state() that returns the current low 2005-12-15 21:30:28 +00:00
vm_page.h Added a "reenter" parameter to the {read|write}_pages() functions to give file 2006-04-12 13:34:04 +00:00
vm_priv.h Separated vm_address_space.h from vm.h. 2005-12-20 15:54:45 +00:00
vm_translation_map.h Implemented quite a hack to solve the lockless get_memory_map() problem (bug #349): 2006-04-30 17:45:33 +00:00
vm_types.h Fixed a couple of issues in our VM: 2007-02-01 12:12:54 +00:00
vm.h * Made vm_area_lookup() part of the kernel private API. 2007-01-14 23:26:20 +00:00