banan-os/kernel/kernel
Bananymous a1ab44d39f Kernel: Optimize disk reads to read multiple sectors at once
Old StorageDevice::read_sectors() read each sector separately if the
underlying disk had a disk cache. This patch allows multiple sectors to
be read even if the disk cache exists and contains some of the sectors.

Only sectors that could not be found from the disk cache are actually
read from the disk. This optimization is not done for writing, which
still will write each sector separately, if disk cache has no memory to
store new sectors. It would feel kind of unnecessary optimization as you
have greater problems if disk cache cannot allocate a single page.
2024-05-27 15:52:34 +03:00
..
ACPI Kernel: Add preliminary support for PCIe 2024-05-25 20:50:07 +03:00
Device Kernel: Specify template paramenters where they cannot be deduced 2024-03-22 15:41:15 +02:00
FS Kernel/LibC: Rework dirent structure 2024-05-22 20:19:59 +03:00
Input Kernel: Remove stack size check for keyboard layout initialization 2024-04-22 21:11:04 +03:00
Memory BAN/Kernel: Rework assertion/panic system 2024-03-04 11:41:54 +02:00
Networking Kernel: Fix some race conditions in TCP stack 2024-05-21 01:53:45 +03:00
Storage Kernel: Optimize disk reads to read multiple sectors at once 2024-05-27 15:52:34 +03:00
Terminal Kernel: Replace CriticalScope with SpinLock in SerialTTY 2024-02-29 19:17:28 +02:00
Timer Kernel: Make PIT reserve its IRQ 2024-04-18 13:34:28 +03:00
APIC.cpp Kernel: Don't even loop over processor when system has only BSP 2024-04-18 13:33:52 +03:00
BootInfo.cpp Kernel: Parse RSDP from multiboot headers if exists 2024-01-26 00:49:42 +02:00
CPUID.cpp Kernel: Move current page table to Processor 2024-03-06 02:19:59 +02:00
Credentials.cpp All: Cleanup all files 2024-01-24 15:53:38 +02:00
Debug.cpp Kernel: Rename rsp->sp and rip->ip 2024-03-22 15:41:15 +02:00
Errors.cpp BAN: Make String and StringView header only 2024-05-23 15:43:26 +03:00
Font.cpp All: Cleanup all files 2024-01-24 15:53:38 +02:00
GDT.cpp Kernel: Unify IDT and GDT code between x86_64 and x86_32 2024-03-26 16:42:02 +02:00
IDT.cpp Kernel: Allow demand paging only for userspace threads 2024-04-17 01:16:43 +03:00
InterruptController.cpp Kernel: Remove lai as a dependecy 2024-04-10 04:39:48 +03:00
Interruptable.cpp Kernel: Store current processor pointer in IA32_GS_BASE 2024-03-07 16:05:29 +02:00
OpenFileDescriptorSet.cpp Kernel/LibC: Update SYS_SEEK to return new offset and implement lseek 2024-05-23 14:49:23 +03:00
PCI.cpp Kernel: Add preliminary support for PCIe 2024-05-25 20:50:07 +03:00
PIC.cpp Kernel: Start all processors on kernel boot 2024-03-03 02:19:43 +02:00
Panic.cpp BAN/Kernel: Rework assertion/panic system 2024-03-04 11:41:54 +02:00
Process.cpp Kernel: Process::validate_pointer_access now maps the whole range 2024-05-24 14:14:17 +03:00
Processor.cpp Kernel: Rewrite whole scheduler 2024-03-29 18:02:12 +02:00
Random.cpp Kernel: Replace i386 with i686 2024-03-26 02:48:26 +02:00
SSP.cpp All: Cleanup all files 2024-01-24 15:53:38 +02:00
Scheduler.cpp Kernel: Fix multiprocessing on x86_64 2024-04-03 14:21:55 +03:00
Semaphore.cpp Kernel: Semaphores and Threads can now be blocked with timeout 2024-02-09 15:28:15 +02:00
Syscall.cpp Kernel: Implement syscalls for i686 and cleanup x86_64 2024-04-03 02:23:23 +03:00
Thread.cpp Kernel: Fix thread signal handling 2024-05-26 20:08:35 +03:00
kernel.cpp Kernel: Add preliminary support for PCIe 2024-05-25 20:50:07 +03:00