Microsoft’s exFAT is getting absolutely huge performance boost on Linux again thanks to Sony

Microsoft’s exFAT is getting absolutely huge performance boost on Linux again thanks to Sony

Home » News » Microsoft’s exFAT is getting absolutely huge performance boost on Linux again thanks to Sony
Table of Contents

Greater than a decade in the past, in 2012, Microsoft launched its 64-bit exFAT (Prolonged File Allocation Desk) file system because the successor to 32-bit FAT32. Seven years later, in 2019, the Redmond large made an enormous revelation when it introduced assist for the exFAT format in Linux.

Quick ahead a decade, in 2022, Sony engineer Yuezhang Mo discovered that lowering repeated traversal of listing entries improved the efficiency of exFAT by as much as 57%. This was pushed in Linux kernel model 6.2.

Mo is again to serving to exFAT once more, and this time, the newest pull request incorporates a bunch of exFAT-related enhancements, and a efficiency increase is certainly one of them. He writes:

Description for this pull request:

  • Repair the random stack corruption and incorrect error returns in exfat_get_block().
  • Optimize exfat_get_block() by bettering checking nook instances.
  • Repair an countless loop by self-linked chain in exfat_find_last_cluster.
  • Take away lifeless EXFAT_CLUSTERS_UNTRACKED codes.
  • Add lacking shutdown examine.
  • Enhance the delete efficiency with discard mount possibility.

For these questioning, the “discard mount” possibility refers back to the operation of informing the underlying storage system about blocks which are now not in use. So, when a file system is mounted with the discard possibility, it allows real-time discard operations. These operations mechanically notify the storage system each time blocks transition from “used” to “free.”

The patch explains:

If the discard mount possibility is enabled, the file’s clusters are discarded when the clusters are freed. Discarding clusters one after the other will considerably scale back efficiency. Poor efficiency might trigger smooth lockup when a number of clusters are freed.

This commit improves efficiency by discarding contiguous clusters in batches.

The efficiency enchancment was measured utilizing an 80 GB file, and it took 4 minutes and 46 seconds or near 287 seconds to delete that. With the brand new optimization, the duty was accomplished in beneath 2 seconds, which equates to an enchancment of 172 occasions:

Measure the efficiency by:

# truncate -s 80G /mnt/file

# time rm /mnt/file

With out this commit:

  • actual 4m46.183s
  • consumer 0m0.000s
  • sys 0m12.863s

With this commit:

  • actual 0m1.661s
  • consumer 0m0.000s
  • sys 0m0.017s

You’ll be able to view the pull request right here on the Linux Kernel Mailing Record (LKML) web site.

author avatar
roosho Senior Engineer (Technical Services)
I am Rakib Raihan RooSho, Jack of all IT Trades. You got it right. Good for nothing. I try a lot of things and fail more than that. That's how I learn. Whenever I succeed, I note that in my cookbook. Eventually, that became my blog. 
share this article.

Enjoying my articles?

Sign up to get new content delivered straight to your inbox.

Please enable JavaScript in your browser to complete this form.
Name