
La versione del kernel Linux 6.14, il cui rilascio stabile è previsto per domani, domenica, include un’importante correzione apportata all’ultimo momento e riguardante lo “scheduler”. Questo componente fondamentale del kernel Linux svolge un ruolo cruciale, in quanto si occupa di gestire i processi in esecuzione e di distribuirli in modo efficiente tra i core della CPU. La modifica introdotta risolve un problema di prestazioni che si era manifestato circa 2 anni fa e che, in determinate condizioni di utilizzo, determinava un significativo calo delle prestazioni, arrivando in alcuni casi a ridurle fino al 30%.
La patch (correzione), proposta e approvata, elimina una modifica apportata in precedenza allo “scheduler”. Sebbene quella modifica avesse portato miglioramenti per alcune tipologie di operazioni, aveva contemporaneamente generato effetti negativi su altre, compromettendo le prestazioni complessive del sistema in alcuni scenari specifici. Grazie a questa nuova correzione, il kernel Linux 6.14 mira a ristabilire un equilibrio ottimale, garantendo un miglioramento generale delle prestazioni per un ampio spettro di carichi di lavoro.
Il Problema e la Soluzione
Una modifica significativa è stata apportata allo “scheduler” del kernel Linux, il componente che gestisce la distribuzione dei processi tra i core della CPU. Questa modifica, introdotta nel codice del kernel circa 2 anni fa, mirava a migliorare le prestazioni della funzione sched_move_task nelle configurazioni che utilizzano CONFIG_SCHED_AUTOGROUP, un’opzione abilitata di default in molte distribuzioni GNU/Linux. Quest’opzione è progettata per ottimizzare l’esperienza utente nei desktop, raggruppando automaticamente i processi per migliorare la gestione della priorità.
Inizialmente, il cambiamento aveva portato benefici concreti, come nei casi di uno script bash che avviava molti comandi “sleep” come processi separati: i tempi di esecuzione erano stati ridotti del 57%. Tuttavia, nel tempo è emerso un effetto collaterale indesiderato. Il test spawn di UnixBench, una suite di benchmark utilizzata per valutare le prestazioni dei sistemi, ha evidenziato un significativo calo di efficienza, arrivando a ridurre le prestazioni del 30% in alcuni scenari. Questo test misura la capacità del sistema di creare rapidamente nuovi processi e, poiché l’opzione autogroup interviene nella gestione dei gruppi di processi, essa ha influenzato negativamente il comportamento dello “scheduler” in questa situazione specifica.
Il problema è stato segnalato da un ingegnere di Amazon durante test su piattaforme cloud AWS, dove l’opzione autogroup era abilitata. Oltre a UnixBench, anche altri carichi di lavoro sono risultati influenzati. La situazione ha sollevato la necessità di intervenire con una nuova patch, eliminando la modifica originaria e ripristinando prestazioni ottimali in tutti gli scenari d’uso.
La Patch di Correzione
La patch inviata da Ingo Molnár, uno dei principali sviluppatori del kernel Linux, annulla la modifica introdotta 2 anni fa. Nel suo messaggio, Molnár ha spiegato che, nonostante la regressione sia vecchia e la correzione arrivi a ridosso del rilascio della versione 6.14, l’impatto sulle prestazioni è tale da giustificare l’inclusione della patch. Ha inoltre aggiunto che, salvo obiezioni da parte di Linus Torvalds, il creatore del kernel Linux, la correzione verrà subito integrata nel repository software Git del Kernel Linux 6.14.
Cosa Significa per gli Utenti
Questa correzione è particolarmente importante per chi utilizza distribuzioni GNU/Linux in ambienti ad alte prestazioni, come server cloud o sistemi di calcolo intensivo. La regressione identificata poteva infatti influenzare negativamente l’efficienza di esecuzione di determinati carichi di lavoro, riducendo la produttività e aumentando i tempi di elaborazione.
Con l’applicazione della patch, i sistemi che utilizzano la configurazione CONFIG_SCHED_AUTOGROUP vedranno ripristinate le prestazioni ottimali, specialmente in scenari in cui vengono eseguiti molti processi simultanei.
Sorge il dubbio su quale sarà l’effetto dell’eliminazione di questa funzionalità sulle prestazioni nei nostri ambienti desktop, dato che il suo scopo iniziale era proprio quello di ottimizzarle. È lecito domandarsi se non sarebbe stato preferibile adottare un approccio differenziato, con versioni del kernel Linux mirate a specifici utilizzi, come accade già con il kernel Linux Zen, progettato per migliorare la reattività e le prestazioni nei contesti desktop e di gioco. Un approccio di questo tipo potrebbe permettere agli utenti di scegliere il kernel Linux più adatto al proprio utilizzo, senza compromettere l’efficienza in nessuno scenario.
Fonte: https://www.phoronix.com/news/Linux-6.14-Sched-2-Year-Regress
Source: Read More