ladybird/Kernel
Andreas Kling c1f8291ce4 Kernel: When physical page allocation fails, try to purge something
Instead of panicking right away when we run out of physical pages,
we now try to find a PurgeableVMObject with some volatile pages in it.
If we find one, we purge that entire object and steal one of its pages.

This makes it possible for the kernel to keep going instead of dying.
Very cool. :^)
2019-12-26 11:45:36 +01:00
..
Arch/i386 Kernel: Interpret "reserved bit violation" page faults correctly 2019-12-25 13:35:57 +01:00
Devices Kernel: Rename vmo => vmobject everywhere 2019-12-19 19:15:27 +01:00
FileSystem ProcFS: Fix inconsistent numbers in /proc/memstat 2019-12-26 11:43:42 +01:00
Heap Kernel: Demangle userspace ELF symbols in backtraces 2019-11-27 14:06:24 +01:00
Net Net: Shrink the NetworkTask packet buffer 2019-12-22 14:54:37 +01:00
TTY VirtualConsole: use memmove for an overlapping copy 2019-12-20 20:02:45 +01:00
VM Kernel: When physical page allocation fails, try to purge something 2019-12-26 11:45:36 +01:00
.bochsrc Meta: Make Serenity run on Bochs once again 2019-08-06 21:09:24 +02:00
.gitignore
Assertions.h
build-gpt-image-grub.sh Build: Fix more bugs in the POSIX sh-ification of scripts 2019-11-03 13:11:43 +01:00
build-image-grub.sh Build: Bump the default disk image size from 500MB to 600MB 2019-11-26 12:54:33 +01:00
build-image-qemu.sh Build: Bump the default disk image size from 500MB to 600MB 2019-11-26 12:54:33 +01:00
build-root-filesystem.sh WindowServer+MenuApplets: Move the "Audio" applet to its own program 2019-12-16 15:33:42 +01:00
CMOS.cpp
CMOS.h
Console.cpp Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
Console.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
DoubleBuffer.cpp Revert "Kernel: Make DoubleBuffer use a KBuffer instead of kmalloc()ing" 2019-10-18 15:58:06 +02:00
DoubleBuffer.h Revert "Kernel: Make DoubleBuffer use a KBuffer instead of kmalloc()ing" 2019-10-18 15:58:06 +02:00
FB.h Kernel: Add framebuffer ioctls; wrap raw ioctls with a C API 2019-08-18 07:40:02 +02:00
grub.cfg Kernel: Add serial_debug cmdline parameter 2019-08-11 08:22:42 +02:00
grub_gpt.cfg PartitionTable: Initial GPT Support, Adding Block Limit 2019-10-07 10:11:39 +02:00
init.cpp Kernel: Get rid of "main thread" concept 2019-12-22 12:37:58 +01:00
IO.h
IRQHandler.cpp
IRQHandler.h
KBuffer.h Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
KBufferBuilder.cpp Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
KBufferBuilder.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
KernelInfoPage.h Kernel+LibC: Publish a "kernel info page" and use it for gettimeofday() 2019-12-15 21:29:26 +01:00
KeyCode.h
KParams.cpp
KParams.h AK: Rename <AK/AKString.h> to <AK/String.h> 2019-09-06 15:36:54 +02:00
kprintf.cpp Kernel: Demangle userspace ELF symbols in backtraces 2019-11-27 14:06:24 +01:00
KResult.h
kstdio.h Build: Get rid of the USERLAND define 2019-12-20 22:59:11 +01:00
KSyms.cpp Kernel: Add a size argument to validate_read_from_kernel 2019-12-24 01:28:38 +01:00
KSyms.h Kernel: Allow modules to link against anything in kernel.map :^) 2019-11-28 21:30:20 +01:00
linker.ld Revert "Kernel: Move Kernel mapping to 0xc0000000" 2019-11-23 17:27:09 +01:00
Lock.cpp Kernel: Use a dedicated thread state for wait-queued threads 2019-12-01 16:02:58 +01:00
Lock.h Kernel: Add Lock::is_locked() 2019-12-26 11:43:23 +01:00
makeall.sh Build: Fix shellcheck warnings in makeall.sh 2019-12-24 02:19:59 +01:00
Makefile Kernel: Make sure we build with -mno-387, -mno-sse, etc. 2019-12-20 21:01:30 +01:00
mkmap.sh Kernel: Allow modules to link against anything in kernel.map :^) 2019-11-28 21:30:20 +01:00
Module.h Kernel: Implement basic module unloading :^) 2019-11-28 21:07:22 +01:00
MousePacket.h
Multiboot.h
PCI.cpp Kernel: Hide PCI logs behind a debug flag like other logs 2019-08-14 06:28:53 +02:00
PCI.h Kernel: Add more PCI configuration reading functions 2019-08-14 06:28:53 +02:00
Process.cpp Kernel+LibPthread+LibC: Add a naive futex and use it for pthread_cond_t 2019-12-25 23:54:06 +01:00
Process.h Kernel+LibPthread+LibC: Add a naive futex and use it for pthread_cond_t 2019-12-25 23:54:06 +01:00
ProcessTracer.cpp
ProcessTracer.h Kernel: Make File's can_read/can_write take a const FileDescription& 2019-11-04 14:03:14 +01:00
Profiling.cpp Kernel: Separate out the symbol offsets in profile output 2019-12-12 21:59:47 +01:00
Profiling.h Kernel: Separate out the symbol offsets in profile output 2019-12-12 21:59:47 +01:00
RTC.cpp Kernel: Fix BIOS date/time on hardware 2019-09-28 13:59:49 +02:00
RTC.h
run run: Run QEMU with "-cpu max" 2019-12-25 15:19:13 +01:00
Scheduler.cpp Kernel: Get rid of "main thread" concept 2019-12-22 12:37:58 +01:00
Scheduler.h Kernel: Get rid of "main thread" concept 2019-12-22 12:37:58 +01:00
SharedBuffer.cpp Kernel: Rename vmo => vmobject everywhere 2019-12-19 19:15:27 +01:00
SharedBuffer.h Kernel+LibC: Make all SharedBuffers purgeable (default: non-volatile) 2019-12-09 20:06:47 +01:00
StdLib.cpp Kernel+LibC: Build with basic -fstack-protector support 2019-12-20 21:03:32 +01:00
StdLib.h Kernel: Add strncmp() 2019-08-11 16:30:43 +02:00
sync.sh Build: Make sure PATH is passed properly (#765) 2019-11-12 10:26:50 +01:00
Syscall.cpp Kernel: Make separate kernel entry points for each PIC IRQ 2019-12-15 12:47:53 +01:00
Syscall.h Kernel+LibPthread+LibC: Add a naive futex and use it for pthread_cond_t 2019-12-25 23:54:06 +01:00
TestModule.cpp Kernel: Have modules export their name in a "module_name" string 2019-11-29 21:31:17 +01:00
Thread.cpp Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
Thread.h Kernel: Use IntrusiveList to make WaitQueue allocation-free :^) 2019-12-22 12:38:01 +01:00
UnixTypes.h Kernel+LibPthread+LibC: Add a naive futex and use it for pthread_cond_t 2019-12-25 23:54:06 +01:00
WaitQueue.cpp Kernel: Use IntrusiveList to make WaitQueue allocation-free :^) 2019-12-22 12:38:01 +01:00
WaitQueue.h Kernel: Use IntrusiveList to make WaitQueue allocation-free :^) 2019-12-22 12:38:01 +01:00