haiku/headers/private/kernel
Michael Lotz 4e2b49bc0c kernel/vm: Implement swap adoption for cut_area middle case.
Rename MovePageRange to Adopt and group it with Resize/Rebase as it
covers the third, middle cut case.

Implement VMAnonymousCache::Adopt() to actually adopt swap pages. This
has to recreate swap blocks instead of taking them over from the source
cache as the cut offset or base offset between the caches may not be
swap block aligned. This means that adoption may fail due to memory
shortage in allocating the swap blocks.

For the middle cut case it is therefore now possible to have the adopt
fail in which case the previous cache restore logic is applied. Since
the readoption of the pages from the second cache can fail for the same
reason, there is a slight chance that we can't restore and lose pages.
For now, just panic in such a case and add a TODO to free memory and
retry.

Change-Id: I9a661f00c8f03bbbea2fe6dee90371c68d7951e6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2588
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-08 21:56:56 +00:00
..
arch kernel: load cpu microcode update if loaded by the bootloader 2020-03-16 06:41:16 +00:00
boot boot_loader: load intel microcode update data file 2020-03-23 15:33:34 +00:00
disk_device_manager partitioning: pass along reference to parent when uninitializing. 2016-12-23 18:53:15 +13:00
fs KPath: Use an object_cache for the path buffers in the normal case. 2019-07-11 22:52:10 -04:00
platform Efi: fix headers for 32 bit platforms 2020-03-28 20:03:37 +00:00
posix
slab
util kernel_cpp: Dynamic exception specifications were deprecated in C++11. 2020-03-15 17:47:09 -04:00
vm kernel/vm: Implement swap adoption for cut_area middle case. 2020-05-08 21:56:56 +00:00
AllocationTracking.h
AreaKeeper.h AreaKeeper.h: move to headers/private/kernel 2020-03-23 16:38:01 +00:00
block_cache.h
boot_device.h
boot_item.h
boot_splash.h
commpage_compat.h kernel: add a compatibility commpage on x86_64. 2018-05-18 05:11:07 +00:00
commpage.h
condition_variable.h kernel: Rework ConditionVariableEntry destruction. 2020-03-07 21:27:05 +00:00
console.h
core_dump.h kernel: Add core dump facility 2016-04-24 18:22:14 +02:00
cpu.h kernel: fix missing SMP_MAX_CPUS on non-x86 2014-01-19 14:09:51 -06:00
debug_heap.h
debug_hex_dump.h Add a hex dump utility for use in KDL commands 2013-11-25 12:45:36 +01:00
debug_paranoia.h
debug.h s/Haiku License/MIT License/g. 2019-08-30 18:16:02 -04:00
debugger_keymaps.h Make US-english the default KDL keymap again. 2016-10-10 07:18:12 +02:00
DPC.h kernel: DPC: remove schedulerLocked argument 2013-11-04 23:51:18 +01:00
elf_priv.h Revert team and thread changes for COMPAT_MODE (hrev52010 & hrev52011). 2018-06-14 22:25:06 -04:00
elf.h kernel: support elf32 on x86_64. 2018-05-15 10:29:00 +00:00
file_cache.h Clean up various whitespace and fix one header guard. 2015-08-02 23:19:07 +02:00
frame_buffer_console.h
generic_syscall.h
heap.h
int.h x86[_64]: Support assigning MSI IRQs to arbitrary CPU 2013-12-20 01:07:08 +01:00
kdevice_manager.h
kdriver_settings.h
kernel_c++_structs.h
kernel_daemon.h
kernel.h kernel: Toggle not toogle; no functional change 2014-05-20 18:36:30 -05:00
kimage.h runtime loader: Register extended image info with kernel 2016-04-27 02:16:09 +02:00
kmodule.h
kscheduler.h kernel: Remove cpu_info::load 2014-01-03 19:44:57 +01:00
ksignal.h _user_debug_thread(): Use new signal SIGNAL_DEBUG_THREAD 2016-04-24 11:54:17 +02:00
ksyscalls.h
ksystem_info.h kernel, libroot: Introduce new API for obtaining system info 2013-12-16 03:58:43 +01:00
listeners.h kernel: Remove gSchedulerLock 2013-11-08 02:41:26 +01:00
load_tracking.h kernel: Fix overflow in load tracking for very large deltas. 2018-01-05 22:48:56 +01:00
lock.h kernel: Add padding in mutex fields for equivalent KDEBUG/non-KDEBUG sizing. 2019-09-13 22:02:52 -04:00
low_resource_manager.h
messaging.h
MessagingServiceDefs.h Remove remaining unnecessary 'volatile' qualifiers 2013-11-06 00:03:07 +01:00
Notifications.h More useless inclusions of khash.h 2015-01-12 18:23:45 +01:00
port.h Reduce lock contention in kernel port subsystem. 2013-10-26 16:10:03 +02:00
real_time_clock.h
safemode.h safemode.h: make it usable from C code. 2014-10-28 23:52:22 +01:00
scheduling_analysis.h Use B_PRId32. 2015-04-01 20:18:00 +02:00
sem.h
smp.h smp: Make {acquire|release}_read_seqlock_inline cast explicitly. 2018-12-09 23:01:42 -05:00
syscall_restart.h trim: Added is_called_via_syscall() function. 2013-11-07 19:06:13 +01:00
system_profiler.h kernel: profile system when SYSTEM_PROFILER is defined. 2015-07-22 20:39:52 +02:00
team.h kernel: Commit missing change to team.h. 2019-07-08 17:58:43 -04:00
thread_types.h kernel: Fix race condition when waiting for load of new team. 2018-12-26 23:48:41 +00:00
thread.h Assorted whitespace cleanup and typo fixes. 2015-08-20 21:54:41 +02:00
timer.h s/OpenBeOS License/MIT License/ universally, as they're the same thing. 2017-02-09 22:09:56 -05:00
tracing.h
user_atomic.h s/OpenBeOS License/MIT License/ universally, as they're the same thing. 2017-02-09 22:09:56 -05:00
user_debugger.h syscalls: Add get_stack_trace and lookup_symbol syscalls. 2015-04-10 16:00:49 +02:00
user_mutex.h Reimplement unnamed POSIX semaphores using user_mutex 2015-05-24 14:03:40 +01:00
UserEvent.h kernel: Fix missing reference release in CreateThreadEvent. 2014-11-01 16:32:04 +01:00
usergroup.h
UserTimer.h kernel: Workaround for double lock of spinlock in user timers. 2014-10-29 00:25:37 +01:00
vfs.h kernel/fs: Add support for setting custom VMCaches in vnodes. 2019-08-31 20:38:18 -04:00
wait_for_objects.h wait_for_objects: add macros for output-only select types 2018-02-26 10:43:54 +00:00