W zeszłym tygodniu dla jądra Linuksa 6.4 połączono wszystkie zmiany VirtIO i Virtual Data Path Acceleration (VDPA). Interesujące z tego żądania ściągnięcia jest zapewnienie dużego wzrostu wydajności dla VDUSE.
Dla tych, którzy nie pamiętają, VDUSE został włączony do jądra w 2021 roku wraz z Linuksem 5.15. VDUSE dotyczy implementacji urządzeń VDPA w przestrzeni użytkownika. Struktura vDPA to kod VirtIO Data Path Acceleration w jądrze dla urządzeń zgodnych ze specyfikacją VirtIO, ale polegających na ścieżce sterowania specyficznej dla dostawcy. Framework vDPA jest coraz częściej używany do abstrakcji sprzętu i ukrywania niektórych elementów złożoności sprzętowej w oprogramowaniu, mając jednocześnie ujednolicony interfejs API przestrzeni użytkownika jako urządzenie VirtIO. VDUSE pozwala na implementację urządzeń emulowanych oprogramowaniem vDPA w przestrzeni użytkownika.
Inżynierowie Bytedance w ciągu ostatnich kilku miesięcy pracowali nad poprawą wydajności VDUSE. Dzięki zestawowi łatek łagodzących rywalizację o blokadę virtqueue w sterowniku virtio-blk, firma Bytedance odnotowuje około 50% poprawę wydajności: z 600 000 do 900 000 IOPS w swoich testach. Łatki z Bytedance dodają również interfejs sysfs, który umożliwia zmianę powinowactwa wywołań zwrotnych IRQ dla każdej kolejki VDUSE virtqueue, aby pomóc w dostrajaniu wydajności, a także interfejs sysfs, aby ustawić rozmiar bufora odbijania dla virtio-vdpa w celu dostrojenia z obciążeniami o dużej przepustowości. Samo zwiększenie o 50% jest przyjemne, podczas gdy te nowe pokrętła do dalszego dostrajania wydajności to wisienka na torcie.
Zmiany VirtIO/VDPA dla Linuksa 6.4 przynoszą również zmniejszenie częstotliwości przerwań dla VirtIO, ulepszenia skalowalności dla vhost-scsi i inne ulepszenia. Więcej informacji o tych zmianach znajdziesz w tym pobraniu.
Ci, którzy chcą dowiedzieć się więcej o Ogólnie VDUSE może to zrobić za pośrednictwem dokumentacji kernel.org.