Il robot per i test del kernel Linux ha registrato giusto la scorsa settimana un miglioramento prestazionale davvero importante per quanto riguarda i processori Intel, segnando un aumento fino al 3888,9% nei test di scalabilità.
Linux: le CPU Intel segnano un importante aumento di prestazioni
L’aumento prestazionale delle CPU Intel con il kernel Linux è stato registrato su un test denominato “will-it-scale.per_process_ops”, che è stato eseguito su un server con processore Intel Xeon Platinum (Cooper Lake). L’azienda di Santa Clara ha molte risorse per mantenere attivo il servizio, che è automatizzato e dedicato ai test per le patch e le varie richieste di inserimento relative alle nuove aggiunte, oltre che per registrare possibili variazioni prestazionali, sia positive, come in questo caso, ma anche negative.
La patch che ha permesso il notevole aumento prestazionale registrato è denominata “mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned sizes“ e, come riportato nella richiesta di inserimento, questa permette di risolvere alcune precedenti regressioni, con un notevole beneficio in determinati casi.
“Dal commit efa7df3e3bb5 (“mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned sizes“) un mmap() di memoria anonima senza un suggerimento di indirizzo specifico e di almeno PMD_SIZE verrà allineato a PMD in modo che possa beneficiare di una pagina di supporto THP.
Tuttavia, è stato dimostrato che questa modifica fa regredire significativamente alcuni carichi di lavoro. [1] segnala regressioni in vari benchmark di specifiche, con un rallentamento fino al 600% del benchmark cactusBSSN su alcune piattaforme. Il benchmark sembra creare molti mapping di 4632 kB, che si sarebbero uniti a una grande area supportata da THP prima del commit efa7df3e3bb5 e ora sono frammentati in più aree, ciascuna allineata al confine PMD con spazi vuoti tra di loro. La regressione sembra quindi essere causata principalmente dal modello di accesso alla memoria del benchmark che soffre di TLB o aliasing della cache a causa dei confini allineati delle singole aree.
Un’altra regressione nota divisa in due per il commit efa7df3e3bb5 è darktable e i primi test suggeriscono questa patch corregge anche lì la regressione.
Per correggere la regressione ma provare comunque a trarre vantaggio dall’allineamento di mapping anonimo THP-friendly, aggiungi una condizione per cui la dimensione del mapping deve essere un multiplo della dimensione PMD invece di almeno la dimensione PMD. In caso di molti mapping di dimensioni dispari come quelli creati da cactusBSSN, questi smetteranno di essere allineati e con spazi vuoti tra loro, e invece si fonderanno di nuovo naturalmente.”
La recente patch mmap va a correggere con una riga di codice una regressione causata da un’altra patch per la gestione della memoria, risalente al 2023.