Linus Torvalds przyjmuje aktualizację Hyper-V firmy Microsoft, aby przyspieszyć czas rozruchu w systemie Linux nowej generacji

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).

Źródło: LKML ( link1 , link2 )

Źródło

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *