* [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).