1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-19 17:47:39 +00:00
serenity/Kernel
Sahan Fernando ed0e7b53a5 Kernel: Move VirtIO code away from using a scatter gather list
Currently, when passing buffers into VirtIOQueues, we use scatter-gather
lists, which contain an internal vector of buffers. This vector is
allocated, filled and the destroy whenever we try to provide buffers
into a virtqueue, which would happen a lot in performance cricital code
(the main transport mechanism for certain paravirtualized devices).

This commit moves it over to using VirtIOQueueChains and building the
chain in place in the VirtIOQueue. Also included are a bunch of fixups
for the VirtIO Console device, making it use an internal VM::RingBuffer
instead.
2021-05-13 10:00:42 +02:00
..
ACPI Kernel/ACPI: Map two pages when reading the FADT 2021-05-08 19:15:54 +02:00
API Kernel: Implement multi-watch InodeWatcher :^) 2021-05-12 22:38:20 +02:00
Arch Kernel: Add Processor::is_bootstrap_processor() function, and use it. (#6871) 2021-05-05 18:48:26 +02:00
Devices Kernel/HID: Don't assume that ACPI is initialized 2021-05-08 19:15:54 +02:00
FileSystem Kernel: Remove unused header from FileDescription.cpp 2021-05-13 08:29:01 +02:00
Heap Kernel: Declare operator new/delete noexcept for MAKE_SLAB_ALLOCATED 2021-05-13 08:29:01 +02:00
Interrupts Kernel: Add Processor::is_bootstrap_processor() function, and use it. (#6871) 2021-05-05 18:48:26 +02:00
Modules Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Net Kernel: Avoid unnecessary allocations in NetworkAdapter::for_each 2021-05-13 08:27:42 +02:00
PCI Everywhere: Turn #if *_DEBUG into dbgln_if/if constexpr 2021-05-01 21:25:06 +02:00
Storage Kernel: Move AHCIPort::ScatterList to VM::ScatterGatherList 2021-05-13 10:00:42 +02:00
Syscalls Kernel: Implement multi-watch InodeWatcher :^) 2021-05-12 22:38:20 +02:00
Tasks Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Time Kernel: Fix issues supporting HPETs with 32-bit-only main counter 2021-05-12 21:44:16 +02:00
TTY Kernel: Avoid unnecessary allocations for TTY::tty_name() 2021-05-13 08:27:42 +02:00
VirtIO Kernel: Move VirtIO code away from using a scatter gather list 2021-05-13 10:00:42 +02:00
VM Kernel: Move VirtIO code away from using a scatter gather list 2021-05-13 10:00:42 +02:00
AddressSanitizer.cpp Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMakeLists.txt Kernel: Create VM::RingBuffer class 2021-05-13 10:00:42 +02:00
CMOS.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Console.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Console.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CoreDump.cpp Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
CoreDump.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Debug.h.in Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DMI.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DMI.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DoubleBuffer.cpp Kernel: Implement peek() function for DoubleBuffer 2021-04-29 08:09:53 +02:00
DoubleBuffer.h Kernel: Implement peek() function for DoubleBuffer 2021-04-29 08:09:53 +02:00
Forward.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FutexQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
FutexQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
init.cpp Kernel: Enable building the kernel with -flto 2021-04-29 20:26:36 +02:00
IO.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KBuffer.h AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
KBufferBuilder.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KBufferBuilder.h Kernel: Avoid allocations in KBufferBuilder::appendff 2021-05-13 08:27:42 +02:00
kprintf.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KResult.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
kstdio.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
KSyms.cpp Kernel: Check kernel symbol's name length matches searched name 2021-04-28 22:14:32 +02:00
KSyms.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
linker.ld Kernel: Define a KERNEL_VIRTUAL_BASE in the linker script 2021-03-04 18:25:01 +01:00
Lock.cpp Kernel: Utilize AK::SourceLocation for LOCK_DEBUG instrumentation. 2021-04-25 09:38:27 +02:00
Lock.h Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
LockMode.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Multiboot.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Panic.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Panic.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
PerformanceEventBuffer.cpp Kernel: Add PerformanceManager static class, move perf event APIs there 2021-05-07 15:35:23 +02:00
PerformanceEventBuffer.h Kernel: Add PerformanceManager static class, move perf event APIs there 2021-05-07 15:35:23 +02:00
PerformanceManager.h Kernel: Move cpu sample perf event to PerformanceManager 2021-05-07 15:35:23 +02:00
PhysicalAddress.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Process.cpp Kernel: Move process exit perf events to PerformanceManager 2021-05-07 15:35:23 +02:00
Process.h Kernel: Implement multi-watch InodeWatcher :^) 2021-05-12 22:38:20 +02:00
ProcessGroup.cpp AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
ProcessGroup.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Random.cpp Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
Random.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTC.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTC.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Scheduler.cpp Kernel: Move cpu sample perf event to PerformanceManager 2021-05-07 15:35:23 +02:00
Scheduler.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
SpinLock.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StdLib.cpp Kernel: Enable building the kernel with -flto 2021-04-29 20:26:36 +02:00
StdLib.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Syscall.cpp Kernel: Enable building the kernel with -flto 2021-04-29 20:26:36 +02:00
Thread.cpp Kernel: Make Thread::try_create API OOM safe 2021-05-13 08:29:01 +02:00
Thread.h Kernel: Remove shadowing member variable from FileDescriptionBlocker 2021-05-05 18:44:40 +02:00
ThreadBlockers.cpp Kernel: Modify TimeManagement::current_time(..) API so it can't fail. (#6869) 2021-05-05 18:51:06 +02:00
ThreadTracer.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ThreadTracer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TimerQueue.cpp Kernel: Modify TimeManagement::current_time(..) API so it can't fail. (#6869) 2021-05-05 18:51:06 +02:00
TimerQueue.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UBSanitizer.cpp Kernel: Remove outdated UBSan comments 2021-05-02 16:18:44 +02:00
UBSanitizer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UnixTypes.h Kernel: Implement IP multicast support 2021-05-05 21:16:17 +02:00
UnveilNode.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UserOrKernelBuffer.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UserOrKernelBuffer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
VirtualAddress.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WaitQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WaitQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WorkQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WorkQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00