Re: [BUG REPORT] shrink_dcache_parent() loops indefinitely on a next-20240102 kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jan 18, 2024 at 06:39:30 AM +0000, Al Viro wrote:
> On Thu, Jan 18, 2024 at 10:59:06AM +0530, Chandan Babu R wrote:
>> On Thu, Jan 04, 2024 at 06:40:43 PM +0530, Chandan Babu R wrote:
>> > On Wed, Jan 03, 2024 at 08:34:20 PM -0800, Darrick J. Wong wrote:
>> >> On Wed, Jan 03, 2024 at 12:12:12PM +0530, Chandan Babu R wrote:
>> >>> Hi,
>> >>> 
>> >>> Executing fstests' recoveryloop test group on XFS on a next-20240102 kernel
>> >>> sometimes causes the following hung task report to be printed on the console,
>> >>> 
>> 
>> Meanwhile, I have executed some more experiments.
>> 
>> The bug can be recreated on a next-20240102 kernel by executing either
>> generic/388 or generic/475 for a maximum of 10 iterations. I tried to do a git
>> bisect based on this observation i.e. I would mark a commit as 'good' if the
>> bug does not get recreated within 10 iterations. This led to the following git
>> bisect log,
>
>> # bad: [119dcc73a9c2df0da002054cdb2296cb32b7cb93] Merge branches 'work.dcache-misc' and 'work.dcache2' into work.dcache
>> git bisect bad 119dcc73a9c2df0da002054cdb2296cb32b7cb93
>> # good: [6367b491c17a34b28aece294bddfda1a36ec0377] retain_dentry(): introduce a trimmed-down lockless variant
>> git bisect good 57851607326a2beef21e67f83f4f53a90df8445a
>> # good: [ef69f0506d8f3a250ac5baa96746e17ae22c67b5] __d_unalias() doesn't use inode argument
>
> Lovely...  Could you try to do the following:
>
> bisect from 6.7-rc1 to work.dcache-misc; for each of those revisions
> 	git worktree add ../test HEAD
> 	cd ../test
> 	git merge work.dcache2
> 	build
> 	test the result
> 	cd -
> 	git worktree remove -f ../test
> 	git bisect {good,bad} accordingly

The result of the above suggested bisect operation is,

# git bisect log
# bad: [0695819b3988e7e4d8099f8388244c1549d230cc] __d_unalias() doesn't use inode argument
# good: [b85ea95d086471afb4ad062012a4d73cd328fa86] Linux 6.7-rc1
git bisect start 'HEAD' 'v6.7-rc1' 'fs/'
# good: [b33c14c8618edfc00bf8963e3b0c8a2b19c9eaa4] Merge branch 'no-rebase-overlayfs' into work.dcache-misc
git bisect good b33c14c8618edfc00bf8963e3b0c8a2b19c9eaa4
# good: [ef8a633ee84d8b57eba1f5b2908a3e0bf61837aa] Merge branch 'merged-selinux' into work.dcache-misc
git bisect good ef8a633ee84d8b57eba1f5b2908a3e0bf61837aa
# good: [53f99622a2b24704766469af23360836432eb88a] d_genocide(): move the extern into fs/internal.h
git bisect good 53f99622a2b24704766469af23360836432eb88a
# bad: [ce54c803d57ab6e872b670f0b46fc65840c8d7ca] d_alloc_parallel(): in-lookup hash insertion doesn't need an RCU variant
git bisect bad ce54c803d57ab6e872b670f0b46fc65840c8d7ca
# bad: [f7aff128d8c70493d614786ba7ec5f743feafe51] get rid of DCACHE_GENOCIDE
git bisect bad f7aff128d8c70493d614786ba7ec5f743feafe51
# first bad commit: [f7aff128d8c70493d614786ba7ec5f743feafe51] get rid of DCACHE_GENOCIDE


commit f7aff128d8c70493d614786ba7ec5f743feafe51
Author: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Date:   Sun Nov 12 21:38:48 2023 -0500

    get rid of DCACHE_GENOCIDE

    ... now that we never call d_genocide() other than from kill_litter_super()

    Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>

 fs/dcache.c            | 5 +----
 include/linux/dcache.h | 1 -
 2 files changed, 1 insertion(+), 5 deletions(-)

-- 
Chandan




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux