Linus Torvalds adotta l’aggiornamento Hyper-V di Microsoft per tempi di avvio più rapidi nella prossima generazione di Linux

Linus Torvalds adotta l’aggiornamento Hyper-V di Microsoft per tempi di avvio più rapidi nella prossima generazione di Linux

Mentre gli appassionati di Windows e Linux si impegnano spesso in accese battaglie sulla tastiera, gli sviluppatori di questi sistemi operativi riconoscono i rispettivi punti di forza e di debolezza. Microsoft, in particolare, riconosce questa dinamica e incoraggia effettivamente gli utenti a sperimentare Linux, soprattutto tramite il suo Windows Subsystem for Linux (WSL).

Inoltre, Microsoft rilascia regolarmente aggiornamenti volti a migliorare le prestazioni e le funzionalità di Linux. Un esempio degno di nota è l’introduzione della virtualizzazione nidificata o del supporto Hyper-V nidificato a novembre 2022. Inoltre, a settembre dell’anno precedente, il creatore di Linux Linus Torvalds ha accettato i miglioramenti relativi a Hyper-V per gli ospiti AMD SEV-SNP e gli ospiti Intel TDX proposti da Wei Liu, architetto principale di Azure Machine Learning.

Di recente, Torvalds ha approvato i nuovi aggiornamenti Hyper-V di Liu per Linux 6.12, con particolare attenzione ai miglioramenti delle prestazioni evidenziati da Saurabh Singh Sengar di Microsoft:

Estrai gli aggiornamenti Hyper-V da Wei Liu:

  • Ottimizza il tempo di avvio tramite l’esecuzione simultanea di hv_synic_init() (Saurabh Sengar)
  • Utilizzare gli helper per leggere i registri di controllo in hv_snp_boot_ap() (Yosry Ahmed)
  • Incorporare il controllo dell’allocazione della memoria in hv_fcopy_start (Zhu Jun)

La descrizione della patch spiega in dettaglio come la parallelizzazione della funzione hv_synic_init() può migliorare significativamente i tempi di avvio per i processori con un numero elevato di core e nodi NUMA (accesso non uniforme alla memoria):

Ottimizza il tempo di avvio tramite l’esecuzione simultanea di hv_synic_init()

Su un sistema di grandi dimensioni con 1780 CPU, hv_acpi_init() impiega circa 3 secondi per terminare, principalmente a causa dell’inizializzazione sincrona sequenziale gestita da hv_synic_init().

Pianificando l’esecuzione simultanea di queste attività, ogni CPU può eseguire hv_synic_init() in parallelo, massimizzando così il potenziale di più CPU.

Questa ottimizzazione comporta una riduzione del tempo di avvio di circa 2 secondi su un sistema con CPU 1780, il che si traduce in un miglioramento di circa il 66% rispetto al metodo precedente.

Sengar ha anche recentemente tenuto una presentazione intitolata “Accelerare l’avvio del kernel Linux per grandi sistemi multi-core”, che discute i dettagli di questa patch e di altre ottimizzazioni in corso. Puoi visualizzare la presentazione qui sul sito web della Linux Plumbers Conference (LPC).

Fonte: LKML ( link1 , link2 )

Fonte

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *