
exFAT su Linux: ora è 172 volte più veloce! 80GB di dati eliminati in meno di 2 secondi
2025-04-02
Autore: Marco
Dopo oltre dieci anni dal suo lancio, exFAT continua a subire ottimizzazioni significative nel mondo Linux, e ancora una volta è un ingegnere di Sony a guidarne l'evoluzione. Questo file system, nato nel 2012 come successore a 64 bit del FAT32 di Microsoft, è stato aperto alla comunità open source nel 2019, rappresentando un raro esempio di collaborazione tra Microsoft e il mondo Linux. Oggi, grazie al lavoro dello sviluppatore Yuezhang Mo, già protagonista di un importante intervento nel 2022, exFAT ha registrato un miglioramento delle prestazioni straordinario: ora è fino a 172 volte più veloce nelle operazioni di cancellazione dei file.
Le modifiche, già incluse nella pull request per il kernel Linux 6.15, affrontano diversi punti critici. Tra le ottimizzazioni spiccano la correzione di problemi di corruzione dello stack e la gestione errata degli errori nella funzione exfat_get_block(), oltre all’eliminazione di codice obsoleto. Un intervento cruciale ha riguardato la risoluzione di un loop infinito nella funzione exfat_find_last_cluster, che ora è stato migliorato. È stata aggiunta una verifica mancante per lo shutdown e migliorata la gestione della cancellazione dei file con l'opzione di montaggio discard.
L'aspetto più rilevante di queste ottimizzazioni è la gestione dell’opzione discard, che consente al file system di informare in tempo reale il dispositivo di storage quando un blocco diventa "libero", migliorando in modo significativo l'efficienza, soprattutto sugli SSD. In precedenza, l'approccio adottato scartava i cluster uno alla volta, causando notevoli rallentamenti e persino soft lockup del sistema durante la liberazione di grandi quantità di spazio.
Con la nuova patch, ora i cluster vengono scartati in blocco, se contigui, riducendo drasticamente i tempi di cancellazione. La differenza è sorprendente: in un test con un file da 80 GB, prima della patch, l’operazione richiedeva 4 minuti e 46 secondi; ora, dopo le modifiche, ci vogliono solo 1,6 secondi.
L'intervento di Sony si inserisce in un contesto più ampio di aggiornamenti previsti per il kernel Linux 6.15, tra cui numerose patch per migliorare l'integrazione di Hyper-V, l'hypervisor di Microsoft, all'interno del sistema operativo Linux. Tra questi, troviamo anche un'importante revisione del modulo mshv, che espone l'interfaccia /dev/mshv per la gestione delle macchine virtuali quando Linux è eseguito come root partition di Hyper-V.
Tuttavia, il lavoro svolto sul file system exFAT è quello che avrà un impatto diretto e significativo sull'utente finale. In particolare, la drastica riduzione dei tempi di cancellazione tramite discard apre a scenari interessanti per dispositivi embedded, smartphone Android, dispositivi di archiviazione esterna e sistemi con memoria flash, dove exFAT è ampiamente utilizzato e le prestazioni sono un elemento cruciale. Questo aggiornamento potrebbe così rivoluzionare il modo in cui gestiamo e archiviare i dati sui nostri dispositivi, aprendo la strada a tecnologie ancora più efficienti nel futuro.