Una recente patch per Linux apportata direttamente da Linus Torvalds ha permesso di migliorare notevolmente le prestazioni multithread del sistema. Si tratta nello specifico di una riscrittura di una patch di sicurezza relativa alle falle Meltdown e Spectre, che ha permesso di ottimizzare di più il codice incidendo in maniera positiva sulla velocità.
Linux: migliorate le prestazioni multithread con una piccola patch di Torvalds
La patch ” x86/uaccess: Avoid barrier_nospec() in 64-bit copy_from_user()” riguarda, come accenato prima, le passate falle Meltdown e Spectre del 2018. Purtroppo, come tutti ben sanno, le patch per queste falle hanno sacrificato un bel po’ di prestazioni della CPU e del sistema, ma Linus è riuscita a renderla decisamente più veloce con uno stratagemma.
Originariamente inviata da un ingegnere Red Hat, la patch è stata rimaneggiata nel suo codice sorgente dallo stesso Torvalds, che nelle sue modifiche ha fatto in modo che questa non usi più l’ API barrier_nospec(), la quale si occupa di impedire l’esecuzione speculativa di una parte del codice macchina. Si tratta di una caratteristica delle moderne CPU, le quali fanno uso della Branch Prediction Unit per la previsione dell’esecuzione di un programma o un’istruzione prima del necessario, in modo da memorizzare anche in anticipo i risultati nella cache. Se quindi la previsione è corretta, il processore risparmierà tempo, mentre in caso contrario i risultati vengono scartati, con conseguente spreco di cicli di clock.
In tempi recenti, tuttavia, su questo sistema è stata scoperta una possibile falla, le cui patch hanno interessato tutti i sistemi, incluso Linux. Naturalmente, il problema ha interessato maggiormente i sistemi informatici professionali più grandi, come server e data center, che devono necessariamente ricorrere ai ripari per garantire il massimo della sicurezza possibile, anche a costo di sacrificare le prestazioni.
Torvalds è tuttavia una persona che non ama affatto questo paradigma, motivo per cui, grazie alle sue profonde conoscenze tecniche, è riuscito anche stavolta a fare la differenza.