All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/10] exfat: improve sync dentry
@ 2024-03-18  5:21 Yuezhang.Mo
  0 siblings, 0 replies; only message in thread
From: Yuezhang.Mo @ 2024-03-18  5:21 UTC (permalink / raw)
  To: linkinjeon, sj1557.seo; +Cc: linux-fsdevel, Andy.Wu, Wataru.Aoyama

This patch set changes sync dentry-by-dentry to sync
dentrySet-by-dentrySet, and remove some syncs that do not cause
data loss. It not only improves the performance of sync dentry,
but also reduces the consumption of storage device life.

I used the following commands and blktrace to measure the improvements
on a class 10 SDXC card.

rm -fr $mnt/dir; mkdir $mnt/dir; sync
time (for ((i=0;i<1000;i++));do touch $mnt/dir/${prefix}$i;done;sync $mnt)
time (for ((i=0;i<1000;i++));do rm $mnt/dir/${prefix}$i;done;sync $mnt)

| case | name len |       create          |        unlink          |
|      |          | time     | write size | time      | write size |
|------+----------+----------+------------+-----------+------------|
|  1   | 15       | 10.260s  | 191KiB     | 9.829s    | 96KiB      |
|  2   | 15       | 11.456s  | 562KiB     | 11.032s   | 562KiB     |
|  3   | 15       | 30.637s  | 3500KiB    | 21.740s   | 2000KiB    |
|  1   | 120      | 10.840s  | 644KiB     | 9.961s    | 315KiB     |
|  2   | 120      | 13.282s  | 1092KiB    | 12.432s   | 752KiB     |
|  3   | 120      | 45.393s  | 7573KiB    | 37.395s   | 5500KiB    |
|  1   | 255      | 11.549s  | 1028KiB    | 9.994s    | 594KiB     |
|  2   | 255      | 15.826s  | 2170KiB    | 13.387s   | 1063KiB    |
|  3   | 255      | 1m7.211s | 12335KiB   | 0m58.517s | 10004KiB   |

case 1. disable dirsync
case 2. with this patch set and enable dirsync
case 3. without this patch set and enable dirsync

Changes for v4:
  - [1/10] Fix a smatch warning reported by static checker

Changes for v3:
  - [2/10] Allow deleted entry follow unused enrty

Changes for v2:
  - Fix typoes in patch subject
  - Merge [3/11] and [8/11] in v1 to [7/10] in v2
  - Update some code comments
  - Avoid else{} in __exfat_get_dentry_set()
  - Rename the argument type of __exfat_get_dentry_set() to
    num_entries

Yuezhang Mo (10):
  exfat: add __exfat_get_dentry_set() helper
  exfat: add exfat_get_empty_dentry_set() helper
  exfat: convert exfat_add_entry() to use dentry cache
  exfat: convert exfat_remove_entries() to use dentry cache
  exfat: move free cluster out of exfat_init_ext_entry()
  exfat: convert exfat_init_ext_entry() to use dentry cache
  exfat: convert exfat_find_empty_entry() to use dentry cache
  exfat: remove unused functions
  exfat: do not sync parent dir if just update timestamp
  exfat: remove duplicate update parent dir

 fs/exfat/dir.c      | 290 ++++++++++++++++++------------------
 fs/exfat/exfat_fs.h |  25 ++--
 fs/exfat/inode.c    |   2 +-
 fs/exfat/namei.c    | 352 +++++++++++++++++---------------------------
 4 files changed, 293 insertions(+), 376 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-03-18  5:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-18  5:21 [PATCH v4 00/10] exfat: improve sync dentry Yuezhang.Mo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.