Linus Torvalds przyjmuje aktualizację Hyper-V firmy Microsoft, aby przyspieszyć czas rozruchu w systemie Linux nowej generacji
Podczas gdy entuzjaści Windowsa i Linuksa często toczą zażarte bitwy na klawiaturę, twórcy tych systemów operacyjnych rozpoznają wzajemnie swoje mocne i słabe strony. Microsoft w szczególności uznaje tę dynamikę i faktycznie zachęca użytkowników do eksperymentowania z Linuksem, zwłaszcza za pośrednictwem swojego Windows Subsystem for Linux (WSL).
Ponadto Microsoft rutynowo wydaje aktualizacje mające na celu zwiększenie wydajności i funkcjonalności Linuksa. Znaczącym przykładem jest wprowadzenie zagnieżdżonej wirtualizacji lub zagnieżdżonej obsługi Hyper-V w listopadzie 2022 r. Ponadto we wrześniu poprzedniego roku twórca Linuksa Linus Torvalds zaakceptował ulepszenia związane z Hyper-V dla gości AMD SEV-SNP i gości Intel TDX, które zostały zaproponowane przez Wei Liu, głównego architekta w Azure Machine Learning.
Niedawno Torvalds zatwierdził nowe aktualizacje Hyper-V od Liu dla systemu Linux 6.12, ze szczególnym uwzględnieniem ulepszeń wydajności, o których wspomniał Saurabh Singh Sengar z Microsoftu:
Pobierz aktualizacje Hyper-V od Wei Liu:
- Optymalizacja czasu rozruchu poprzez jednoczesne wykonanie hv_synic_init() (Saurabh Sengar)
- Wykorzystaj pomocników do odczytu rejestrów sterujących w hv_snp_boot_ap() (Yosry Ahmed)
- Włącz sprawdzanie alokacji pamięci w hv_fcopy_start (Zhu Jun)
Opis poprawki wyjaśnia, w jaki sposób paralelizacja funkcji hv_synic_init() może znacznie skrócić czas rozruchu procesorów z dużą liczbą rdzeni i węzłami NUMA (nierównomierny dostęp do pamięci):
Zoptymalizuj czas rozruchu poprzez jednoczesne wykonanie hv_synic_init()
W przypadku dużych systemów z 1780 procesorami, ukończenie funkcji hv_acpi_init() zajmuje około 3 sekund, głównie z powodu sekwencyjnej inicjalizacji sync obsługiwanej przez hv_synic_init().
Dzięki zaplanowaniu tych zadań tak, aby odbywały się równolegle, każdy procesor może uruchomić funkcję hv_synic_init() równolegle, maksymalizując w ten sposób potencjał wielu procesorów.
Ta optymalizacja skutkuje skróceniem czasu rozruchu o około 2 sekundy w systemie z procesorem 1780, co oznacza poprawę o około 66% w porównaniu z poprzednią metodą.
Sengar niedawno wygłosił również prezentację zatytułowaną „Accelerating Linux Kernel Boot-Up for Large Multi-Core Systems”, w której omówiono szczegóły tej poprawki i innych bieżących optymalizacji. Prezentację można obejrzeć tutaj na stronie internetowej Linux Plumbers Conference (LPC).
Dodaj komentarz