linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/10] exfat: improve sync dentry
@ 2024-03-11  4:24 ` Yuezhang.Mo
  2024-03-11  6:21   ` Sungjong Seo
  0 siblings, 1 reply; 3+ messages in thread
From: Yuezhang.Mo @ 2024-03-11  4:24 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 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      | 288 ++++++++++++++++++------------------
 fs/exfat/exfat_fs.h |  25 ++--
 fs/exfat/inode.c    |   2 +-
 fs/exfat/namei.c    | 352 +++++++++++++++++---------------------------
 4 files changed, 291 insertions(+), 376 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH v3 00/10] exfat: improve sync dentry
  2024-03-11  4:24 ` [PATCH v3 00/10] exfat: improve sync dentry Yuezhang.Mo
@ 2024-03-11  6:21   ` Sungjong Seo
  2024-03-12  8:34     ` Namjae Jeon
  0 siblings, 1 reply; 3+ messages in thread
From: Sungjong Seo @ 2024-03-11  6:21 UTC (permalink / raw)
  To: Yuezhang.Mo, linkinjeon; +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 v3
>   - [2/10] Allow deleted entry follow unused entry

looks good. Thanks for your patch.
Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>

> 
> 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      | 288 ++++++++++++++++++------------------
>  fs/exfat/exfat_fs.h |  25 ++--
>  fs/exfat/inode.c    |   2 +-
>  fs/exfat/namei.c    | 352 +++++++++++++++++---------------------------
>  4 files changed, 291 insertions(+), 376 deletions(-)
> 
> --
> 2.34.1




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v3 00/10] exfat: improve sync dentry
  2024-03-11  6:21   ` Sungjong Seo
@ 2024-03-12  8:34     ` Namjae Jeon
  0 siblings, 0 replies; 3+ messages in thread
From: Namjae Jeon @ 2024-03-12  8:34 UTC (permalink / raw)
  To: Yuezhang.Mo; +Cc: Sungjong Seo, linux-fsdevel, Andy.Wu, Wataru.Aoyama

2024-03-11 15:21 GMT+09:00, Sungjong Seo <sj1557.seo@samsung.com>:
>> 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 v3
>>   - [2/10] Allow deleted entry follow unused entry
>
> looks good. Thanks for your patch.
> Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
Applied them to #dev, Thanks for your patch!

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-03-12  8:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20240311042501epcas1p34655f4bf93feafb952ba35534b516c7e@epcas1p3.samsung.com>
2024-03-11  4:24 ` [PATCH v3 00/10] exfat: improve sync dentry Yuezhang.Mo
2024-03-11  6:21   ` Sungjong Seo
2024-03-12  8:34     ` Namjae Jeon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).