News: 0001566895

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

exFAT Fixes Significant Random Write Performance Regression With Linux 6.17

([Linux Storage] 61 Minutes Ago exFAT)


Following yesterday's [1]F2FS pull request , the exFAT file-system updates were sent out and since merged for the ongoing [2]Linux 6.17 kernel merge window.

There are only two patches for exFAT during the Linux 6.17 merge window but they are significant.

First up, is a patch for proper handling of the "fdatasync" flag to fix a performance regression previously introduced for this exFAT file-system driver in the Linux kernel. In fixing the issue, the random write performance on an SD card doubled from 3.5MB/s to 7MB/s. Zhengxu Zhang of Unisoc explained with [3]the patch :

"Test: androbench by default setting, use 64GB sdcard. the random write speed:

without this patch 3.5MB/s

with this patch 7MB/s

After patch "11a347fb6cef", the random write speed decreased significantly. the .write_iter() interface had been modified, and check the differences with generic_file_write_iter(), when calling generic_write_sync() and exfat_file_write_iter() to call vfs_fsync_range(), the fdatasync flag is wrong, and make not use the fdatasync mode, and make random write speed decreased. So use generic_write_sync() instead of vfs_fsync_range()."

The other patch is for addressing an infinite loop situation that may occur due to file-system corruption on exFAT. [4]That patch explains the situations by which the exFAT driver could get stuck in an infinite loop currently when encountering exFAT corruption.

Both fixes are now [5]merged for Linux 6.17 and will likely be back-ported too for prior kernel stable series.



[1] https://www.phoronix.com/news/Linux-6.17-F2FS

[2] https://www.phoronix.com/search/Linux+6.17

[3] https://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat.git/commit/?h=dev&id=2f2d42a17b5a6711378d39df74f1f69a831c5d4e

[4] https://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat.git/commit/?h=dev&id=99f9a97dce39ad413c39b92c90393bbd6778f3fd

[5] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5998f2bca43e071e9c5a26cc7e7e00f9a78791c4



phoronix

I don't suffer from stallmanellosis

- Al Viro on linux-kernel