https://www.lffl.org/wp-content/uploads/2020/05/pcie-to-pcix.png

lffl Linux Freedom

Linux 5.8: una patch per risolvere un bug vecchio di 12 anni

by

Vi abbiamo già parlato delle novità attese per il kernel Linux 5.7 che arriverà questo weekend. Mi riferisco, ad esempio, alle 600 linee di codice introdotte per migliorare la compatibilità con i floppy disk. Nella successiva release del kernel, Torvalds ha annunciato di avere già alcune pull request in attesa, verranno rimosse alcune righe di codice per ottimizzare il consumo energetico legato all’utilizzo dell’ASPM con i moduli PCIe-to-PCI/PCI-X.

Linux 5.8: ASPM per tutti

L’Active State Power Management (ASPM) è un meccanismo, realizzato per i dispositivi PCIe, che permette di ottimizzare il consumo di energia. Questo risultato viene raggiunto mettendo la periferica in una modalità di low-power, quando non viene rilevato traffico sulla relativa connessione seriale.

Kai-Heng Feng, dipendente presso Canonical, ha segnalato un bug presente nel kernel, che disabilita l’ASPM L1 proprio per le connessioni PCIe-to-PCI/PCI-X Bridge. Tutto ciò aggrava, inutilmente, il consumo di energia. Kai, tra l’altro, fa anche notare che ciò non avviene su Windows, dove l’ASPM è attivo anche per questo tipo di bridge.

https://www.lffl.org/wp-content/uploads/2020/05/linux-kernel-bug.png

Le linee di codice colpevoli di questo malfunzionamento sono quelle riportate nell’immagine, e risalgono alla versione 2.6.26 del Kernel Linux. Il commento originale al codice, tra l’altro, non spiega il motivo per cui fu scelto questo tipo di comportamento per il gestore di energia. Forse era legato a qualche problema di stallo nell’uscita della periferica dallo stand-by che, all’epoca dell’inserimento del codice, non era ancora stato risolto o testato adeguatamente.

Questa patch, quindi, si occuperà di eliminare queste poche righe, risolvendo così un problema trascinatosi per oltre una decade. Per sapere se beneficerete o meno di questa miglioria, dovete controllare se nel vostro sistema è presente un link di tipo PCI Express to PCI / PCI-X bridge. Per farlo, basta dare dal terminale il seguente comando:

lspci | grep bridge

Seguiteci sul , sulla e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.