Com’è noto, i fan di Windows e i fan di Linux amano spesso impegnarsi in accese guerre di tastiera. Tuttavia, i creatori dei sistemi operativi sono consapevoli dei punti di forza e di debolezza l'uno dell'altro. Non c'è dubbio che anche Microsoft lo capisca e, di fatto, incoraggia persino gli utenti a provare Linux, anche se utilizzando il suo Windows Subsystem of Linux (WSL). Non solo, l'azienda spesso spinge anche gli aggiornamenti che sono pensati per migliorare le prestazioni di Linux o aumentarne la funzionalità. Ad esempio, a novembre 2022, Microsoft ha spinto la virtualizzazione nidificata o il supporto Hyper-V nidificato. E a settembre dell'anno scorso, il capo di Linux Linus Torvalds ha accettato i miglioramenti di Hyper-V relativi ai guest AMD SEV-SNP e agli guest Intel TDX inviati dal Principal Architect di Microsoft presso Azure Machine Learning, Wei Liu.
Torvalds ha nuovamente accettato i nuovi aggiornamenti Hyper-V di Liu per Linux 6.12. Uno di questi, proposto da Saurabh Singh Sengar di Microsoft, è molto interessante dal punto di vista delle prestazioni. Come riportato nella descrizione: “Estrarre gli aggiornamenti Hyper-V da Wei Liu. Ottimizzare 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). Aggiungere il controllo dell'allocazione della memoria in hv_fcopy_start (Zhu Jun)”.
Linux: miglioramenti sostanziali per i tempi di avvio dei sistemi
La descrizione della patch spiega come la parallelizzazione della funzione hv_synic_init() può migliorare il tempo di avvio sui processori con molti core e nodi NUMA (accesso non uniforme alla memoria). Come riportato ancora nella descrizione dell’aggiornamento: “Ottimizza il tempo di avvio tramite l'esecuzione simultanea di hv_synic_init(). Attualmente su un sistema molto grande con 1780 CPU, hv_acpi_init() impiega circa 3 secondi per essere completato. Ciò è dovuto all'inizializzazione sincrona sequenziale per ogni CPU eseguita da hv_synic_init(). Pianifica queste attività parallelamente in modo che ogni CPU esegua hv_synic_init() in parallelo per sfruttare appieno più CPU. Questa soluzione consente di risparmiare circa 2 secondi di tempo di avvio su un sistema con CPU 1780, il che rappresenta un miglioramento di circa il 66% nella logica esistente.”
Infine, Sengar ha anche mostrato una presentazione presentazione sulle sue scoperte intitolata "Accelerare l'avvio del kernel Linux per grandi sistemi multi-core". Questa che approfondisce i dettagli di questa patch e di altre ottimizzazioni che sono state apportate. Per saperne di più è possibile consultare il sito ufficiale della Linux Plumbers Conference (LPC).