[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <rn5criadn3vvtoucxnfalw5utfdjpge2rh6qtjjazr445hqm2l@rppqbguol4mk>
Date: Sun, 7 Dec 2025 17:50:45 +0800
From: Heming Zhao <heming.zhao@...e.com>
To: Joseph Qi <joseph.qi@...ux.alibaba.com>
Cc: mark@...heh.com, jlbec@...lplan.org, ocfs2-devel@...ts.linux.dev,
linux-kernel@...r.kernel.org, glass.su@...e.com
Subject: Re: [PATCH RESEND v4 0/2] ocfs2: give ocfs2 the ability to reclaim
suballocator free bg
On Fri, Dec 05, 2025 at 05:22:47PM +0800, Joseph Qi wrote:
>
>
> On 2025/12/2 14:39, Heming Zhao wrote:
> > why resend?
> > - the v4 summary description in the cover letter is incorrect.
> >
> > v4:
> >
> > Most of the changes involve revising comments. For the code itself, there are
> > function renames and parameter usage adjustments, but no changes to the code
> > logic.
> >
> > For patch [1/2]:
> > - Based on Joseph's v3 review comments:
> > 1. Modify the caller to initialize the ocfs2_read_hint_group_descriptor()
> > input parameter '*released'.
> > 2. Rename the _reclaim_to_main_bm() to _ocfs2_reclaim_suballoc_to_main()
> > 3. Change the text "not empty rec" to "non empty rec"
> >
> > - Revise the comments preceding the function _ocfs2_reclaim_suballoc_to_main().
> >
> > - For the question: "How to distinguish the release case or a bug?"
> > I write a comment before ocfs2_read_hint_group_descriptor().
> >
> > - Revise the commit log to make it clearer.
> >
> > For patch [2/2]:
> > - Revise the commit log to make it clearer.
> >
> > Remove the v3 patch: "ocfs2: adjust spinlock_t ip_lock protection scope"
> > - Reason: This patch belongs to a different topic/job and should be
> > handled separately.
> >
> > v3:
> >
> > For patch [1/3]:
> > - Factor out the reclaim code into a new function '_reclaim_to_main_bm'.
> > - The function ocfs2_read_hint_group_descriptor doesn't return -EIDRM
> > when the group descriptor is invalid. The new code logic returns 0,
> > and the input parameter '*released' is set to 1.
> >
> > For patch [2/3]:
> > - Modify the code to follow the new logic of ocfs2_read_hint_group_descriptor
> > as introduced in patch [1/3].
> >
> > For patch [3/3]:
> > - No new changes.
> >
> > v3 patch has passed the xfstests:
> > ./check -g quick -T -b -s ocfs2 -e generic/032 -e generic/076 \
> > -e generic/081 -e generic/266 -e generic/272 -e generic/281 \
> > -e generic/331 -e generic/338 -e generic/347 -e generic/361 \
> > -e generic/479 -e generic/480 -e generic/628 -e generic/629 \
> > -e generic/648 -e generic/650
> >
>
> Hi, could you please send out the ocfs2-test results as well?
>
> Thanks,
> Joseph
I have run the xfstest with above style:
./check -g quick -T -b -s ocfs2 -e generic/032 -e generic/076 \
-e generic/081 -e generic/266 -e generic/272 -e generic/281 \
-e generic/331 -e generic/338 -e generic/347 -e generic/361 \
-e generic/479 -e generic/480 -e generic/628 -e generic/629 \
-e generic/648 -e generic/650
with/without the patch set, *Failures* are same:
generic/003 generic/007 generic/228 generic/322 generic/329 generic/376
generic/383 generic/384 generic/385 generic/386 generic/420 generic/424
generic/448 generic/449 generic/510 generic/513 generic/537 generic/552
generic/563 generic/578 generic/594 generic/607 generic/620 generic/630
generic/741 generic/755
For the ocfs2-test, it seems that open-mpi4 does not work correctly in my test
environment (OpenSUSE TumbleWeed). Therefore, I only ran the tests in single-node
mode. The results were the same between the patched code and the unpatched code.
ocfs2-test cases:
$ single_run-WIP.sh -f 1 -k /usr/local/ocfs2-test/tmp/linux-2.6.39.tar.gz -l \
/usr/local/ocfs2-test/log -m /mnt/ocfs2 -d /dev/vde -b 4096 -c 32768 -s pcmk \
-n hacluster -t create_and_open,directaio,fillverifyholes,renamewriterace,\
aiostress,filesizelimits,mmaptruncate,buildkernel,splice,sendfile,reserve_space,\
mmap,inline,xattr,reflink,mkfs,tunefs,backup_super
$ discontig_runner.sh -f 1 -d /dev/vde -b 4096 -c 32768 -s pcmk -n hacluster /mnt/ocfs2
- Heming
>
> > v2:
> >
> > Create 2 new patches:
> > - ocfs2: detect released suballocator bg for fh_to_[dentry|parent]
> > - ocfs2: adjust spinlock_t ip_lock protection scope
> >
> > In ocfs2_read_hint_group_descriptor()
> > - bypass the validation of GD when the BH is already managed by jbd2.
> >
> > In _ocfs2_free_suballoc_bits()
> > - Move up the position of the vars 'idx' & 'rec'.
> > - Move up the position of the ocfs2_journal_dirty.
> > - Use le[16|32]_to_cpu() to access cl/fe/rec vars.
> > - Add error handling for calling ocfs2_extend_trans().
> > - adjust spin_lock ->ip_lock protection scope.
> > - Follow Glass's review comments, add 'comment' & 'else-break' for the
> > 'for-loop'.
> >
> > v1:
> >
> > Only create patch:
> > - ocfs2: give ocfs2 the ability to reclaim suballoc free bg
> >
> > Heming Zhao (2):
> > ocfs2: give ocfs2 the ability to reclaim suballoc free bg
> > ocfs2: detect released suballocator BG for fh_to_[dentry|parent]
> >
> > fs/ocfs2/suballoc.c | 336 +++++++++++++++++++++++++++++++++++++++++---
> > 1 file changed, 317 insertions(+), 19 deletions(-)
> >
>
Powered by blists - more mailing lists