From: Baokun Li <libaokun1@huawei.com>
To: <tytso@mit.edu>, Jan Kara <jack@suse.cz>
Cc: <linux-ext4@vger.kernel.org>, <adilger.kernel@dilger.ca>,
<linux-kernel@vger.kernel.org>, <ojaswin@linux.ibm.com>,
<julia.lawall@inria.fr>, <yi.zhang@huawei.com>,
<yangerkun@huawei.com>, <libaokun@huaweicloud.com>
Subject: Re: [PATCH v3 15/17] ext4: convert free groups order lists to xarrays
Date: Mon, 21 Jul 2025 21:45:30 +0800 [thread overview]
Message-ID: <4b5a7a7a-a4db-4d4d-8931-c57ffd231006@huawei.com> (raw)
In-Reply-To: <47e62021-fd2c-44ba-be34-e12b2a486efb@huawei.com>
在 2025/7/21 20:33, Baokun Li 写道:
> On 2025/7/21 19:07, Jan Kara wrote:
>> On Mon 14-07-25 21:03:25, Baokun Li wrote:
>>> |CPU: Kunpeng 920 | P80 | P1 |
>>> |Memory: 512GB |------------------------|-------------------------|
>>> |960GB SSD (0.5GB/s)| base | patched | base | patched |
>>> |-------------------|-------|----------------|--------|----------------|
>>> |mb_optimize_scan=0 | 20097 | 19555 (-2.6%) | 316141 | 315636 (-0.2%) |
>>> |mb_optimize_scan=1 | 13318 | 15496 (+16.3%) | 325273 | 323569 (-0.5%) |
>>>
>>> |CPU: AMD 9654 * 2 | P96 | P1 |
>>> |Memory: 1536GB |------------------------|-------------------------|
>>> |960GB SSD (1GB/s) | base | patched | base | patched |
>>> |-------------------|-------|----------------|--------|----------------|
>>> |mb_optimize_scan=0 | 53603 | 53192 (-0.7%) | 214243 | 212678 (-0.7%) |
>>> |mb_optimize_scan=1 | 20887 | 37636 (+80.1%) | 213632 | 214189 (+0.2%) |
>>>
>>> Signed-off-by: Baokun Li <libaokun1@huawei.com>
>> The patch looks good and the results are nice. I've just noticed two
>> typos:
>>
>>> +static inline void ext4_mb_avg_fragment_size_destory(struct
>>> ext4_sb_info *sbi)
>> ^^^ destroy
>>
>>
>>> +static inline void ext4_mb_largest_free_orders_destory(struct
>>> ext4_sb_info *sbi)
>> ^^^ destroy
>
> Hi Jan, thanks for the review! While examining this patch, I also
> identified a comment formatting error that I regret overlooking previously.
> My apologies for this oversight.
>
> Hey Ted, could you please help apply the following diff to correct the
> spelling errors and comment formatting issues? Or would you prefer I send
> out a new patch series or a separate cleanup patch?
>
>
Sorry, thunderbird is automatically converting tabs to spaces in the
code, try the diff below.
Thanks,
Baokun
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index a9eb997b8c9b..c61955cba370 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -863,10 +863,10 @@ mb_update_avg_fragment_size(struct super_block
*sb, struct ext4_group_info *grp)
grp->bb_avg_fragment_size_order = new;
if (new >= 0) {
/*
- * Cannot use __GFP_NOFAIL because we hold the group lock.
- * Although allocation for insertion may fails, it's not fatal
- * as we have linear traversal to fall back on.
- */
+ * Cannot use __GFP_NOFAIL because we hold the group lock.
+ * Although allocation for insertion may fails, it's not fatal
+ * as we have linear traversal to fall back on.
+ */
int err = xa_insert(&sbi->s_mb_avg_fragment_size[new],
grp->bb_group, grp, GFP_ATOMIC);
if (err)
@@ -1201,10 +1201,10 @@ mb_set_largest_free_order(struct super_block
*sb, struct ext4_group_info *grp)
grp->bb_largest_free_order = new;
if (test_opt2(sb, MB_OPTIMIZE_SCAN) && new >= 0 && grp->bb_free) {
/*
- * Cannot use __GFP_NOFAIL because we hold the group lock.
- * Although allocation for insertion may fails, it's not fatal
- * as we have linear traversal to fall back on.
- */
+ * Cannot use __GFP_NOFAIL because we hold the group lock.
+ * Although allocation for insertion may fails, it's not fatal
+ * as we have linear traversal to fall back on.
+ */
int err = xa_insert(&sbi->s_mb_largest_free_orders[new],
grp->bb_group, grp, GFP_ATOMIC);
if (err)
@@ -3657,14 +3657,14 @@ static void ext4_discard_work(struct work_struct
*work)
ext4_mb_unload_buddy(&e4b);
}
-static inline void ext4_mb_avg_fragment_size_destory(struct
ext4_sb_info *sbi)
+static inline void ext4_mb_avg_fragment_size_destroy(struct
ext4_sb_info *sbi)
{
for (int i = 0; i < MB_NUM_ORDERS(sbi->s_sb); i++)
xa_destroy(&sbi->s_mb_avg_fragment_size[i]);
kfree(sbi->s_mb_avg_fragment_size);
}
-static inline void ext4_mb_largest_free_orders_destory(struct
ext4_sb_info *sbi)
+static inline void ext4_mb_largest_free_orders_destroy(struct
ext4_sb_info *sbi)
{
for (int i = 0; i < MB_NUM_ORDERS(sbi->s_sb); i++)
xa_destroy(&sbi->s_mb_largest_free_orders[i]);
@@ -3818,8 +3818,8 @@ int ext4_mb_init(struct super_block *sb)
kfree(sbi->s_mb_last_groups);
sbi->s_mb_last_groups = NULL;
out:
- ext4_mb_avg_fragment_size_destory(sbi);
- ext4_mb_largest_free_orders_destory(sbi);
+ ext4_mb_avg_fragment_size_destroy(sbi);
+ ext4_mb_largest_free_orders_destroy(sbi);
kfree(sbi->s_mb_offsets);
sbi->s_mb_offsets = NULL;
kfree(sbi->s_mb_maxs);
@@ -3886,8 +3886,8 @@ void ext4_mb_release(struct super_block *sb)
kvfree(group_info);
rcu_read_unlock();
}
- ext4_mb_avg_fragment_size_destory(sbi);
- ext4_mb_largest_free_orders_destory(sbi);
+ ext4_mb_avg_fragment_size_destroy(sbi);
+ ext4_mb_largest_free_orders_destroy(sbi);
kfree(sbi->s_mb_offsets);
kfree(sbi->s_mb_maxs);
iput(sbi->s_buddy_cache);
next prev parent reply other threads:[~2025-07-21 13:45 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-14 13:03 [PATCH v3 00/17] ext4: better scalability for ext4 block allocation Baokun Li
2025-07-14 13:03 ` [PATCH v3 01/17] ext4: add ext4_try_lock_group() to skip busy groups Baokun Li
2025-07-17 10:09 ` Ojaswin Mujoo
2025-07-19 0:37 ` Baokun Li
2025-07-17 22:28 ` Andi Kleen
2025-07-18 3:09 ` Theodore Ts'o
2025-07-19 0:29 ` Baokun Li
2025-07-22 20:59 ` Andi Kleen
2025-07-14 13:03 ` [PATCH v3 02/17] ext4: separate stream goal hits from s_bal_goals for better tracking Baokun Li
2025-07-17 10:29 ` Ojaswin Mujoo
2025-07-19 1:37 ` Baokun Li
2025-07-14 13:03 ` [PATCH v3 03/17] ext4: remove unnecessary s_mb_last_start Baokun Li
2025-07-17 10:31 ` Ojaswin Mujoo
2025-07-14 13:03 ` [PATCH v3 04/17] ext4: remove unnecessary s_md_lock on update s_mb_last_group Baokun Li
2025-07-17 13:36 ` Ojaswin Mujoo
2025-07-19 1:54 ` Baokun Li
2025-07-14 13:03 ` [PATCH v3 05/17] ext4: utilize multiple global goals to reduce contention Baokun Li
2025-07-14 13:03 ` [PATCH v3 06/17] ext4: get rid of some obsolete EXT4_MB_HINT flags Baokun Li
2025-07-14 13:03 ` [PATCH v3 07/17] ext4: fix typo in CR_GOAL_LEN_SLOW comment Baokun Li
2025-07-14 13:03 ` [PATCH v3 08/17] ext4: convert sbi->s_mb_free_pending to atomic_t Baokun Li
2025-07-14 13:03 ` [PATCH v3 09/17] ext4: merge freed extent with existing extents before insertion Baokun Li
2025-07-14 13:03 ` [PATCH v3 10/17] ext4: fix zombie groups in average fragment size lists Baokun Li
2025-07-14 13:03 ` [PATCH v3 11/17] ext4: fix largest free orders lists corruption on mb_optimize_scan switch Baokun Li
2025-07-14 13:03 ` [PATCH v3 12/17] ext4: factor out __ext4_mb_scan_group() Baokun Li
2025-07-14 13:03 ` [PATCH v3 13/17] ext4: factor out ext4_mb_might_prefetch() Baokun Li
2025-07-14 13:03 ` [PATCH v3 14/17] ext4: factor out ext4_mb_scan_group() Baokun Li
2025-07-14 13:03 ` [PATCH v3 15/17] ext4: convert free groups order lists to xarrays Baokun Li
2025-07-21 11:07 ` Jan Kara
2025-07-21 12:33 ` Baokun Li
2025-07-21 13:45 ` Baokun Li [this message]
2025-07-21 18:01 ` Theodore Ts'o
2025-07-22 5:58 ` Baokun Li
2025-07-24 3:55 ` Guenter Roeck
2025-07-24 4:54 ` Theodore Ts'o
2025-07-24 5:20 ` Guenter Roeck
2025-07-24 11:14 ` Zhang Yi
2025-07-24 14:30 ` Guenter Roeck
2025-07-24 14:54 ` Theodore Ts'o
2025-07-25 2:28 ` Zhang Yi
2025-07-26 0:50 ` Baokun Li
2025-07-14 13:03 ` [PATCH v3 16/17] ext4: refactor choose group to scan group Baokun Li
2025-07-14 13:03 ` [PATCH v3 17/17] ext4: implement linear-like traversal across order xarrays Baokun Li
2025-07-15 1:11 ` [PATCH v3 00/17] ext4: better scalability for ext4 block allocation Zhang Yi
2025-07-19 21:45 ` Theodore Ts'o
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4b5a7a7a-a4db-4d4d-8931-c57ffd231006@huawei.com \
--to=libaokun1@huawei.com \
--cc=adilger.kernel@dilger.ca \
--cc=jack@suse.cz \
--cc=julia.lawall@inria.fr \
--cc=libaokun@huaweicloud.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ojaswin@linux.ibm.com \
--cc=tytso@mit.edu \
--cc=yangerkun@huawei.com \
--cc=yi.zhang@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).