A più di dieci anni dal suo debutto, exFAT continua a ricevere ottimizzazioni significative nel mondo Linux, e ancora una volta è un ingegnere Sony a guidarne l'evoluzione. Nato nel 2012 come successore a 64 bit del FAT32 di Microsoft, exFAT è stato aperto alla comunità open source nel 2019, segnando 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, il file system registra un miglioramento di performance semplicemente straordinario: fino a 172 volte più veloce in operazioni di cancellazione file.
Le modifiche, già incluse nella pull request destinata al kernel Linux 6.15, intervengono in più punti critici. Si va dalla correzione di problemi di corruzione dello stack e gestione errata degli errori nella funzione exfat_get_block() all'eliminazione di codice morto come EXFAT_CLUSTERS_UNTRACKED. Uno degli interventi più rilevanti riguarda un loop infinito causato da una catena autocollegata nella funzione exfat_find_last_cluster, che ora è stato corretto. È stata anche aggiunta una verifica mancante per lo shutdown e migliorata la gestione della cancellazione dei file in presenza dell'opzione di mount discard.
CANCELLARE 80 GB IN MENO DI DUE SECONDI
Proprio quest'ultimo aspetto rappresenta il cuore dell'enorme balzo prestazionale. L'opzione discard consente al file system di informare il dispositivo di storage in tempo reale quando un blocco passa da "usato" a "libero", migliorando l'efficienza soprattutto su SSD. Tuttavia, l'approccio precedente scartava i cluster uno alla volta, causando rallentamenti tali da innescare persino soft lockup del sistema quando si liberavano grandi quantità di spazio.
Con la nuova patch, i cluster vengono ora scartati in blocco se contigui, riducendo drasticamente i tempi. La differenza è quantificata in modo impressionante con un test su un file da 80 GB. Prima della patch, l'operazione di cancellazione richiedeva 4 minuti e 46 secondi; dopo la modifica, appena 1,6 secondi.
VERSO LA MATURIT DEL SUPPORTO EXFAT
L'intervento di Sony si inserisce in una più ampia serie 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 del pinguino. All'interno dello stesso ciclo di aggiornamento troviamo anche un'importante revisione del modulo mshv, che espone l'interfaccia /dev/mshv per la gestione delle virtual machine quando Linux è in esecuzione come root partition di Hyper-V.
Ma è il lavoro sul file system exFAT a colpire di più per l'impatto diretto sull'utente finale. In particolare, la riduzione drastica dei tempi di cancellazione con discard apre scenari interessanti per dispositivi embedded, smartphone Android, dispositivi di archiviazione esterna e sistemi con memoria flash, dove exFAT è ancora largamente utilizzato e le performance sono un elemento chiave.