banan-os/kernel/kernel
Bananymous d9c05b7378 Kernel: rewrite the whole kmalloc (again)
Performance of the old kmalloc implementation was terrible.
We now use fixed-width linked list allocations for sizes <= 60 bytes.
This is much faster than variable size allocation.

We don't use bitmap scanning anymore since it was probably the slow
part. Instead we use headers that tell allocations size and aligment.

I removed the kmalloc_eternal, even though it was very fast, there is
not really any need for it, since the only place it was used in was IDT.

These changes allowed my psf (font) parsing to go from ~500 ms to ~20 ms.
(coming soon :D)
2023-02-22 16:32:50 +02:00
..
FS Kernel: Update ErrorOr API and add path find to VFS 2023-02-22 01:23:11 +02:00
APIC.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
ATA.cpp Kernel: Initial work on filesystem 2023-02-20 01:46:00 +02:00
CPUID.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
Debug.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
DiskIO.cpp Kernel: Initial work on filesystem 2023-02-20 01:46:00 +02:00
Input.cpp Kernel: Update ErrorOr API and add path find to VFS 2023-02-22 01:23:11 +02:00
InterruptController.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
PIC.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
PIT.cpp Kernel: Sleep now actually sleeps and allows idling 2023-02-19 18:52:25 +02:00
RTC.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
SSP.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
Scheduler.cpp Kernel: Sleep now actually sleeps and allows idling 2023-02-19 18:52:25 +02:00
Serial.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
Shell.cpp Kernel: Update ErrorOr API and add path find to VFS 2023-02-22 01:23:11 +02:00
SpinLock.cpp Kernel: Add is_locked() to spinlock 2023-02-02 15:49:30 +02:00
TTY.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
Thread.cpp Kernel: Sleep now actually sleeps and allows idling 2023-02-19 18:52:25 +02:00
VesaTerminalDriver.cpp All: rename every function from UpperCamelCase to snake_case 2023-02-01 21:05:44 +02:00
build_libc.cpp Kernel: Add support for arrow keys in Shell 2023-01-13 15:07:24 +02:00
font.c Kernel: Improve kernel panic message and rename it 'panic'->'Panic' 2023-01-09 21:57:03 +02:00
kernel.cpp Kernel: Sleep now actually sleeps and allows idling 2023-02-19 18:52:25 +02:00
kmalloc.cpp Kernel: rewrite the whole kmalloc (again) 2023-02-22 16:32:50 +02:00