ladybird/Kernel/Storage
Pankaj Raghav d234e6b801 Kernel: Add polling support to NVMe
Add polling support to NVMe so that it does not use interrupt to
complete a IO but instead actively polls for completion. This probably
is not very efficient in terms of CPU usage but it does not use
interrupts to complete a IO which is beneficial at the moment as there
is no MSI(X) support and it can reduce the latency of an IO in a very
fast NVMe device.

The NVMeQueue class has been made the base class for NVMeInterruptQueue
and NVMePollQueue. The factory function `NVMeQueue::try_create` will
return the appropriate queue to the controller based on the polling
boot parameter.

The polling mode can be enabled by adding an extra boot parameter:
`nvme_poll`.
2022-02-02 18:26:59 +01:00
..
ATA Kernel: Remove unimplemented AHCIPort::is_hot_pluggable declaration 2022-01-28 19:05:52 +02:00
NVMe Kernel: Add polling support to NVMe 2022-02-02 18:26:59 +01:00
Partition Kernel: Stop using unsigned when adjusting offsets in DiskPartition 2022-01-25 22:41:17 +02:00
RamdiskController.cpp Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
RamdiskController.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
RamdiskDevice.cpp Kernel: Remove the KString::try_create(String::formatted(...)) pattern 2021-12-28 01:55:22 -08:00
RamdiskDevice.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
StorageController.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
StorageDevice.cpp Kernel: Optimize StorageDevice read and write function 2022-01-29 17:41:06 +02:00
StorageDevice.h Kernel: Cache blocks_per_page in StorageDevice class 2022-01-29 17:41:06 +02:00
StorageManagement.cpp Kernel: Add polling support to NVMe 2022-02-02 18:26:59 +01:00
StorageManagement.h Kernel: Add polling support to NVMe 2022-02-02 18:26:59 +01:00