2024-05-01 16:48:04

by Chuck Lever III

[permalink] [raw]
Subject: possible circular locking dependency detected

Hi-

Lockdep splat showed up during xfstest on v6.9-rc6:

[10205.014915] WARNING: possible circular locking dependency detected
[10205.016399] 6.9.0-rc6-00022-g06cd86b25b98 #3 Not tainted
[10205.017724] ------------------------------------------------------
[10205.019194] kswapd0/64 is trying to acquire lock:
[10205.020656] ffff88813f60db18 (&xfs_nondir_ilock_class#3){++++}-{4:4}, at: xfs_ilock+0x14d/0x3c0 [xfs]
[10205.023544] [10205.023544] but task is already holding lock:
[10205.024932] ffffffff8deb5420 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat+0x167/0x1530
[10205.027718] [10205.027718] which lock already depends on the new lock.
[10205.027718] [10205.029842] [10205.029842] the existing dependency chain (in reverse order) is:
[10205.031760] [10205.031760] -> #1 (fs_reclaim){+.+.}-{0:0}:
[10205.033478] fs_reclaim_acquire+0x111/0x170
[10205.035002] __kmalloc+0xa9/0x4b0
[10205.036223] xfs_attr_list_ilocked+0x6f0/0x1540 [xfs]
[10205.038856] xfs_attr_list+0x1ce/0x260 [xfs]
[10205.040688] xfs_vn_listxattr+0x102/0x180 [xfs]
[10205.042753] vfs_listxattr+0x9e/0xf0
[10205.044100] nfsd_listxattr+0x134/0x250 [nfsd]
[10205.045890] nfsd4_listxattrs+0x16/0x20 [nfsd]
[10205.047585] nfsd4_proc_compound+0xe41/0x24e0 [nfsd]
[10205.049477] nfsd_dispatch+0x258/0x7d0 [nfsd]
[10205.051196] svc_process_common+0xa88/0x1db0 [sunrpc]
[10205.052934] svc_process+0x552/0x800 [sunrpc]
[10205.054315] svc_recv+0x1958/0x2460 [sunrpc]
[10205.055877] nfsd+0x23d/0x360 [nfsd]
[10205.057315] kthread+0x2f3/0x3e0
[10205.058524] ret_from_fork+0x3d/0x80
[10205.059821] ret_from_fork_asm+0x1a/0x30
[10205.061222] [10205.061222] -> #0 (&xfs_nondir_ilock_class#3){++++}-{4:4}:
[10205.063319] __lock_acquire+0x3437/0x6e60
[10205.065023] lock_acquire+0x1ad/0x520
[10205.066444] down_write_nested+0x96/0x1f0
[10205.067897] xfs_ilock+0x14d/0x3c0 [xfs]
[10205.071022] xfs_icwalk_ag+0x885/0x1580 [xfs]
[10205.073093] xfs_icwalk+0x50/0xd0 [xfs]
[10205.075391] xfs_reclaim_inodes_nr+0x158/0x210 [xfs]
[10205.077605] xfs_fs_free_cached_objects+0x5a/0x90 [xfs]
[10205.079657] super_cache_scan+0x389/0x4e0
[10205.080918] do_shrink_slab+0x352/0xd20
[10205.082122] shrink_slab+0x161/0xe40
[10205.083157] shrink_one+0x3f2/0x6c0
[10205.084218] shrink_node+0x1f6e/0x35e0
[10205.085322] balance_pgdat+0x87f/0x1530
[10205.086433] kswapd+0x559/0xa00
[10205.087399] kthread+0x2f3/0x3e0
[10205.088673] ret_from_fork+0x3d/0x80
[10205.090550] ret_from_fork_asm+0x1a/0x30

I can leave the test NFS server up for a bit if you'd like me to
collect more information.


--
Chuck Lever