diff options
| author | Baokun Li <[email protected]> | 2025-07-14 13:03:20 +0000 |
|---|---|---|
| committer | Theodore Ts'o <[email protected]> | 2025-07-25 13:14:17 +0000 |
| commit | 1c320d8e92925bb7615f83a7b6e3f402a5c2ca63 (patch) | |
| tree | db1d464e5ffafee815bb44213b6b52450211d049 /tools/perf/scripts/python/gecko.py | |
| parent | ext4: merge freed extent with existing extents before insertion (diff) | |
| download | kernel-1c320d8e92925bb7615f83a7b6e3f402a5c2ca63.tar.gz kernel-1c320d8e92925bb7615f83a7b6e3f402a5c2ca63.zip | |
ext4: fix zombie groups in average fragment size lists
Groups with no free blocks shouldn't be in any average fragment size list.
However, when all blocks in a group are allocated(i.e., bb_fragments or
bb_free is 0), we currently skip updating the average fragment size, which
means the group isn't removed from its previous s_mb_avg_fragment_size[old]
list.
This created "zombie" groups that were always skipped during traversal as
they couldn't satisfy any block allocation requests, negatively impacting
traversal efficiency.
Therefore, when a group becomes completely full, bb_avg_fragment_size_order
is now set to -1. If the old order was not -1, a removal operation is
performed; if the new order is not -1, an insertion is performed.
Fixes: 196e402adf2e ("ext4: improve cr 0 / cr 1 group scanning")
CC: [email protected]
Signed-off-by: Baokun Li <[email protected]>
Reviewed-by: Jan Kara <[email protected]>
Reviewed-by: Zhang Yi <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Theodore Ts'o <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/gecko.py')
0 files changed, 0 insertions, 0 deletions
