Questa mattina per Linux 6.3 è stata inviata una correzione dello scheduler della CPU Linux per gestire un problema di squilibrio presente nel kernel della linea principale da una rielaborazione dello scheduler che è arrivata alla fine del 2019.
Vincent Guittot di Linaro ha inviato la soluzione per affrontare uno squilibrio problema di overflow. Vincent ha spiegato:”Quando il gruppo locale è completamente occupato ma il suo carico medio è superiore al carico del sistema, il calcolo dello squilibrio andrà in overflow e il gruppo locale non è l’obiettivo migliore per estrarre questo carico”.
Il problema è presente nel kernel mainline da ottobre 2019. Sebbene la correzione provenga da un ingegnere Linaro, il problema è stato scoperto su Intel Xeon Scalable Sapphire Rapids server. Un post della mailing list delinea ulteriormente questo problema dovuto al bug di integer overflow:
“L’algoritmo è progettato per estrarre alcune attività dal gruppo più occupato al gruppo locale. Ma quando entrambi i gruppi sono o diventeranno sovraccarichi, l’algoritmo non vuole eseguire il push del locale gruppo al di sopra del carico medio del dominio sched. Tuttavia, in alcuni casi, il calcolo dello squilibrio può essere errato, causando una migrazione senza senso e persino amplificando lo squilibrio.”
La correzione è stata inviata questa mattina come sched/urgent pull prima del rilascio del kernel Linux 6.3-rc7 più tardi oggi. La correzione consiste nel non tentare di estrarre alcuna attività dal gruppo locale se è più caricata rispetto al carico medio del sistema. Una volta raccolto dalla linea principale, dovrebbe a sua volta essere riportato anche alle recenti versioni stabili del kernel Linux.