This document focuses on specific benchmark examples to highlight the performance benefits of the Tuxera exFAT file system software on Linux mobile, embedded and commodity hardware platforms. It presents comparisons of three Linux file systems: the FAT32 driver, Tuxera exFAT/U user space driver and Tuxera exFAT kernel driver. 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 Linux FAT32 file system, the user space Tuxera exFAT/U and the Tuxera exFAT kernel driver. The benchmark results are presented for both embedded and commodity hardware.
Embedded hardware: Marvell 88F6281 SoC, ARM926EJ-S, 800 MHz CPU, 128 MB RAM, SAMSUNG HD103SI 1 TB SATA disk, SATA interface:
The same hardware using the significantly slower USB 2.0 interface:
In both embedded benchmarks the performance bottleneck was a hardware component in case of the Tuxera exFAT kernel driver. It was either the Samsung disk speed (SATA case) or the maximum USB 2.0 practical speed limitation. On the other hand, the Tuxera exFAT/U performance bottleneck was the microprocessor because the driver’s CPU usage was close to 100%. The CPU usage of the Tuxera exFAT kernel driver was around 11-24% to achieve the higher, maximum transfer rate using the specific hardware and bus interface.
It is worth remembering that the CPU utilization of exFAT/U is higher than the exFAT kernel driver which indicates that the latter is more efficient and leaves more CPU for applications to use.
Commodity hardware: Core2 Duo, T9300, 2.5 GHz, 4 GB RAM, RAM Device
Because the Tuxera exFAT kernel driver easily achieves the maximum possible read and write speeds on much more powerful commodity hardware using only 3-10% of the CPU time, Tuxera has tested the driver with a RAM Device as well. This method eliminates the slow physical disk, disk controller, and data bus bandwidth limitations and we can measure the possible maximum throughput using 100% CPU time. Please find below the results.