This document focuses on specific benchmark examples to highlight the performance benefits of the Tuxera exFAT file system software on Linux embedded hardware platforms. It presents comparisons of several file systems: the default and native Linux ext4, Linux VFAT, NTFS-3G and Tuxera exFAT, Tuxera NTFS and Tuxera FAT. The results apply to any Linux installation including Android.
Unlike the over 30-year-old MS-DOS FAT, exFAT is a modern, 64-bit, high-performance file system which has scalability and performance built into it by design. For instance it uses optimized directory handling to achieve rapid, random file creation, removal and access, it completely optimizes away the need to access the File Allocation Table for contiguous files hereby eliminating disk seeks and CPU processing overheads and it has cluster bitmap to find free clusters rather than having to read the entire File Allocation Table. Overall these are increasing file and volume scalability, read and write data streaming performance, and reduce application I/O latency and CPU use.
However the design of the file system is only one of the two most critical factors of the performance of the file system. The other one is the quality of the implementation. This is where Tuxera’s engineers excel. Tuxera exFAT/U is a user space file system driver meanwhile Tuxera exFAT is a pure kernel module with no user space components which enables to achieve the highest possible performance on Linux today by using fine-tuned kernel caching frameworks, direct access to hardware, eliminating expensive context switches, TLB flushes and paging activity.
Tuxera file systems are integrated and optimized to the customer system. Based on customer demands and expectations, Tuxera exFAT can be tuned with advanced file system technologies like efficient caching, optional and speculative read-ahead, write-behind, optimal I/O scheduling, CPU specific assembly optimization, transparent large buffer support, workload specific heuristics, hardware acceleration and anything else which is needed to achieve the maximum performance. Tuxera’s developers are part of the Linux ecosystem for over a decade and work together with leading digital storage, chipset, software and Linux vendors to ensure that the Tuxera’s file system software operate safely and efficiently.
Typically the performance bottleneck is a hardware component. Most often this is a bus interface, disk throughput or system memory bandwidth limitation. This is why the best ever measured performance is ”only” 8.2 GB/s. Typically this is much lower on most embedded and consumer electronic devices but the rule is the same: the speed limit is the hardware, or a device driver, or unoptimized software.
Tuxera exFAT kernel module has direct I/O, zero-copy and splice support which eliminates memory copies during data transfers if the two end-point devices, for instance a media encoder/decoder and network controller, support this. The performance limit is fundamentally the minimum value of what the two endpoints can support, or an intermediate hardware, or the memory subsystem.
The charts below compare the performance of the default ext4 Linux file system, open source VFAT, open source, user space NTFS-3G and Tuxera exFAT kernel driver as well as other Tuxera file systems. The benchmark results are presented for both SSD HDD and SD memory card on common embedded hardware.
Embedded hardware: Qualcomm Snapdragon S4 quad-core, ARM, 2 GB RAM, Sandisk UHS-1 64 GB SDXC.
Embedded hardware: Marvell 6192 800 MhZ, 512 MB RAM, ARM,120 GB Corsair Force GT SSD SATA 3.
In both embedded benchmarks Tuxera exFAT and other Tuxera file systems perform significantly faster than ext4 and open source VFAT. At the bottom end, user space NTFS-3G hit performance bottleneck when the driver’s CPU usage was always close to 100%. To compare, Tuxera exFAT driver’s CPU usage was around only 15-40% to achieve the much higher, maximum transfer rate using the specific hardware and bus interface.