From: "WangzXD0325@outlook.com" <WangzXD0325@outlook.com>
To: "linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"rcu@vger.kernel.org" <rcu@vger.kernel.org>,
"syzkaller-bugs@googlegroups.com"
<syzkaller-bugs@googlegroups.com>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"paulmck@kernel.org" <paulmck@kernel.org>,
"torvalds@linux-foundation.org" <torvalds@linux-foundation.org>
Subject: Subject: [BUG] rcu: stall detected in __dentry_kill during file teardown
Date: Wed, 7 Jan 2026 05:36:54 +0000 [thread overview]
Message-ID: <KL1PR03MB8800D80C595910CA2E765B70A184A@KL1PR03MB8800.apcprd03.prod.outlook.com> (raw)
Hello,
I am reporting an RCU stall detected in __dentry_kill(), which was
observed during syzkaller-style fuzz testing. The stall eventually
leads to prolonged RCU grace-period starvation and system instability.
=== Summary ===
The kernel reports an RCU preempt stall involving __dentry_kill()
during file and dentry teardown. One CPU remains stuck in a filesystem
cleanup path while holding locks, preventing RCU grace periods from
completing.
The stall is detected reliably under syzkaller fuzzing.
=== Environment ===
Kernel: 6.18.0 (locally built)
Config: PREEMPT(full)
Arch: x86_64
Hardware: QEMU Standard PC (i440FX + PIIX)
Workload: syzkaller (syz-executor)
=== Triggering context ===
The stall is detected while a syzkaller executor process is exiting and
releasing file descriptors. The problematic task is in process context
during file teardown:
do_exit
__fput
dput
__dentry_kill
dentry_unlink_inode
iput
evict
shmem_evict_inode
shmem_truncate_range
At the same time, other CPUs are observed handling DRM-related atomic
operations and vblank timers.
=== Warning details ===
The kernel reports:
INFO: rcu detected stall in __dentry_kill
rcu: rcu_preempt detected stalls on CPUs/tasks
The stall persists for over 10k jiffies, triggering NMI backtraces on
multiple CPUs.
RCU also reports starvation of the grace-period kthread:
rcu: rcu_preempt kthread starved for 10502 jiffies
=== Call trace ===
Stalled task backtrace (CPU 3):
lock_release
_raw_spin_unlock_irqrestore
hrtimer_cancel
drm_vblank_disable_and_save
drm_crtc_vblank_off
drm_atomic_helper_commit_modeset_disables
drm_atomic_commit
drm_mode_obj_set_property_ioctl
drm_ioctl
__do_sys_ioctl
File teardown path involved in the stall:
__dentry_kill
dentry_unlink_inode
iput
evict
shmem_evict_inode
shmem_truncate_range
__fput
do_exit
=== Observations ===
The RCU stall occurs while tearing down dentries and inodes, suggesting
that a filesystem cleanup path may be holding locks or disabling
preemption for an excessive amount of time.
The presence of DRM atomic commit and vblank timer activity in parallel
may exacerbate scheduling delays, but the stall is ultimately detected
in __dentry_kill().
This points to a possible locking or preemption imbalance in dentry or
inode teardown paths, potentially triggered by adversarial userspace
behavior.
=== Reproducer ===
No standalone reproducer is available.
The issue was observed during syzkaller-style fuzzing.
=== Expected behavior ===
RCU grace periods should complete without stalls during normal or
malformed file teardown operations.
=== Actual behavior ===
RCU reports prolonged stalls in __dentry_kill(), leading to repeated
NMI backtraces and RCU kthread starvation.
=== Notes ===
Additional logs, full kernel configuration, or syzkaller artifacts can
be provided if needed.
Reported-by:
Zhi Wang
reply other threads:[~2026-01-07 5:36 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=KL1PR03MB8800D80C595910CA2E765B70A184A@KL1PR03MB8800.apcprd03.prod.outlook.com \
--to=wangzxd0325@outlook.com \
--cc=akpm@linux-foundation.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@kernel.org \
--cc=rcu@vger.kernel.org \
--cc=syzkaller-bugs@googlegroups.com \
--cc=torvalds@linux-foundation.org \
/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