From: kernel test robot <oliver.sang@intel.com>
To: "A. Sterling" <adam.sterling@gmail.com>
Cc: <oe-lkp@lists.linux.dev>, <lkp@intel.com>,
<linux-fsdevel@vger.kernel.org>,
Christian Brauner <brauner@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>, Jan Kara <jack@suse.cz>,
<linux-kernel@vger.kernel.org>, <oliver.sang@intel.com>
Subject: Re: [PATCH] pidfs: pin stashed dentry for pid lifetime to fix repeat-open regression
Date: Thu, 18 Jun 2026 14:36:43 +0800 [thread overview]
Message-ID: <202606180805.1b2fdd03-lkp@intel.com> (raw)
Hello,
kernel test robot noticed "WARNING:possible_irq_lock_inversion_dependency_detected" on:
commit: 028b94b023efe53f26decb0497e3ffe5b9e16ee9 ("[PATCH] pidfs: pin stashed dentry for pid lifetime to fix repeat-open regression")
url: https://github.com/intel-lab-lkp/linux/commits/A-Sterling/pidfs-pin-stashed-dentry-for-pid-lifetime-to-fix-repeat-open-regression/20260612-190630
base: https://git.kernel.org/cgit/linux/kernel/git/vfs/vfs.git vfs.all
patch link: https://lore.kernel.org/all/20260612110529.80055-1-adam.sterling@gmail.com/
patch subject: [PATCH] pidfs: pin stashed dentry for pid lifetime to fix repeat-open regression
in testcase: boot
config: x86_64-rhel-9.4-bpf
compiler: gcc-14
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 32G
(please refer to attached dmesg/kmsg for entire log/backtrace)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202606180805.1b2fdd03-lkp@intel.com
[ 92.416502][ C0] WARNING: possible irq lock inversion dependency detected
[ 92.417060][ C0] 7.1.0-rc4+ #1 Not tainted
[ 92.417436][ C0] --------------------------------------------------------
[ 92.418046][ C0] sed/219 just changed the state of lock:
[ 92.418527][ C0] ffff8881bbb865d8 (&sighand->siglock){-...}-{3:3}, at: lock_task_sighand (signal.c:1379 (discriminator 1))
[ 92.420518][ C0] but this lock took another, HARDIRQ-unsafe lock in the past:
[ 92.421115][ C0] (&lockref->lock){+.+.}-{3:3}
[ 92.421123][ C0]
[ 92.421123][ C0] and interrupts could create inverse lock ordering between them.
[ 92.421123][ C0]
[ 92.426274][ C0]
[ 92.426274][ C0] other info that might help us debug this:
[ 92.430176][ C0] Chain exists of:
[ 92.430176][ C0] &sighand->siglock --> &(&sig->stats_lock)->lock --> &lockref->lock
[ 92.430176][ C0]
[ 92.435925][ C0] Possible interrupt unsafe locking scenario:
[ 92.435925][ C0]
[ 92.439638][ C0] CPU0 CPU1
[ 92.441400][ C0] ---- ----
[ 92.443137][ C0] lock(&lockref->lock);
[ 92.444756][ C0] local_irq_disable();
[ 92.446587][ C0] lock(&sighand->siglock);
[ 92.448366][ C0] lock(&(&sig->stats_lock)->lock);
[ 92.450174][ C0] <Interrupt>
[ 92.451642][ C0] lock(&sighand->siglock);
[ 92.453200][ C0]
[ 92.453200][ C0] *** DEADLOCK ***
[ 92.453200][ C0]
[ 92.457265][ C0] 2 locks held by sed/219:
[ 92.458724][ C0] #0: ffffffffb322ad60 (rcu_read_lock){....}-{1:3}, at: kill_pid_info_type (linux/rcupdate.h:300 linux/rcupdate.h:838 signal.c:1455)
[ 92.460612][ C0] #1: ffffffffb322ad60 (rcu_read_lock){....}-{1:3}, at: lock_task_sighand (linux/rcupdate.h:300 linux/rcupdate.h:838 signal.c:1362)
[ 92.462494][ C0]
[ 92.462494][ C0] the shortest dependencies between 2nd lock and 1st lock:
[ 92.465475][ C0] -> (&lockref->lock){+.+.}-{3:3} {
[ 92.467032][ C0] HARDIRQ-ON-W at:
[ 92.468491][ C0] __lock_acquire (locking/lockdep.c:5191)
[ 92.470147][ C0] lock_acquire (trace/events/lock.h:24 (discriminator 15) trace/events/lock.h:24 (discriminator 15) locking/lockdep.c:5831 (discriminator 15))
[ 92.471793][ C0] _raw_spin_lock (linux/spinlock_api_smp.h:158 (discriminator 1) locking/spinlock.c:158 (discriminator 1))
[ 92.473420][ C0] d_instantiate (linux/spinlock.h:342 dcache.c:2084 dcache.c:2078)
[ 92.475015][ C0] d_make_root (dcache.c:2126)
[ 92.476597][ C0] shmem_fill_super (shmem.c:5103)
[ 92.478192][ C0] get_tree_nodev (super.c:1266 super.c:1285)
[ 92.479724][ C0] vfs_get_tree (super.c:1693)
[ 92.481253][ C0] fc_mount (namespace.c:1198)
[ 92.482730][ C0] vfs_kern_mount (namespace.c:6298)
[ 92.484296][ C0] kern_mount (namespace.c:6289 namespace.c:6289)
[ 92.485750][ C0] shmem_init (shmem.c:5420)
[ 92.487245][ C0] mnt_init (namespace.c:6271)
[ 92.488676][ C0] vfs_caches_init (dcache.c:3418)
[ 92.490238][ C0] start_kernel (main.c:1202)
[ 92.491707][ C0] __pfx_clear_bss (x86/kernel/head64.c:310)
[ 92.493159][ C0] x86_64_start_kernel (x86/kernel/head64.c:291)
[ 92.494609][ C0] common_startup_64 (x86/kernel/head_64.S:418)
[ 92.496025][ C0] SOFTIRQ-ON-W at:
[ 92.497295][ C0] __lock_acquire (locking/lockdep.c:5191)
[ 92.498764][ C0] lock_acquire (trace/events/lock.h:24 (discriminator 15) trace/events/lock.h:24 (discriminator 15) locking/lockdep.c:5831 (discriminator 15))
[ 92.500198][ C0] _raw_spin_lock (linux/spinlock_api_smp.h:158 (discriminator 1) locking/spinlock.c:158 (discriminator 1))
[ 92.501576][ C0] d_instantiate (linux/spinlock.h:342 dcache.c:2084 dcache.c:2078)
[ 92.502953][ C0] d_make_root (dcache.c:2126)
[ 92.504319][ C0] shmem_fill_super (shmem.c:5103)
[ 92.505708][ C0] get_tree_nodev (super.c:1266 super.c:1285)
[ 92.507160][ C0] vfs_get_tree (super.c:1693)
[ 92.508507][ C0] fc_mount (namespace.c:1198)
[ 92.509809][ C0] vfs_kern_mount (namespace.c:6298)
[ 92.511231][ C0] kern_mount (namespace.c:6289 namespace.c:6289)
[ 92.512525][ C0] shmem_init (shmem.c:5420)
[ 92.513817][ C0] mnt_init (namespace.c:6271)
[ 92.516019][ C0] vfs_caches_init (dcache.c:3418)
[ 92.517541][ C0] start_kernel (main.c:1202)
[ 92.519055][ C0] __pfx_clear_bss (x86/kernel/head64.c:310)
[ 92.520442][ C0] x86_64_start_kernel (x86/kernel/head64.c:291)
[ 92.521878][ C0] common_startup_64 (x86/kernel/head_64.S:418)
[ 92.523342][ C0] INITIAL USE at:
[ 92.524518][ C0] __lock_acquire (locking/lockdep.c:5191)
[ 92.525930][ C0] lock_acquire (trace/events/lock.h:24 (discriminator 15) trace/events/lock.h:24 (discriminator 15) locking/lockdep.c:5831 (discriminator 15))
[ 92.527403][ C0] _raw_spin_lock (linux/spinlock_api_smp.h:158 (discriminator 1) locking/spinlock.c:158 (discriminator 1))
[ 92.528797][ C0] d_instantiate (linux/spinlock.h:342 dcache.c:2084 dcache.c:2078)
[ 92.530252][ C0] d_make_root (dcache.c:2126)
[ 92.531629][ C0] shmem_fill_super (shmem.c:5103)
[ 92.533035][ C0] get_tree_nodev (super.c:1266 super.c:1285)
[ 92.534518][ C0] vfs_get_tree (super.c:1693)
[ 92.535844][ C0] fc_mount (namespace.c:1198)
[ 92.537152][ C0] vfs_kern_mount (namespace.c:6298)
[ 92.538524][ C0] kern_mount (namespace.c:6289 namespace.c:6289)
[ 92.539835][ C0] shmem_init (shmem.c:5420)
[ 92.541165][ C0] mnt_init (namespace.c:6271)
[ 92.542506][ C0] vfs_caches_init (dcache.c:3418)
[ 92.543881][ C0] start_kernel (main.c:1202)
[ 92.545279][ C0] __pfx_clear_bss (x86/kernel/head64.c:310)
[ 92.546706][ C0] x86_64_start_kernel (x86/kernel/head64.c:291)
[ 92.548218][ C0] common_startup_64 (x86/kernel/head_64.S:418)
[ 92.549692][ C0] }
[ 92.550763][ C0] ... key at: __key.4+0x0/0x40
[ 92.552113][ C0] ... acquired at:
[ 92.553212][ C0] __lock_acquire (locking/lockdep.c:5237)
[ 92.554371][ C0] lock_acquire (trace/events/lock.h:24 (discriminator 15) trace/events/lock.h:24 (discriminator 15) locking/lockdep.c:5831 (discriminator 15))
[ 92.555540][ C0] _raw_spin_lock (linux/spinlock_api_smp.h:158 (discriminator 1) locking/spinlock.c:158 (discriminator 1))
[ 92.556673][ C0] lockref_get (linux/spinlock.h:342 lockref.c:50)
[ 92.557781][ C0] pidfs_alloc_file (linux/dcache.h:365 pidfs.c:1168)
[ 92.558971][ C0] pidfd_prepare (fork.c:1918)
[ 92.560119][ C0] __x64_sys_pidfd_open (pid.c:674 pid.c:710 pid.c:695 pid.c:695)
[ 92.561296][ C0] do_syscall_64 (x86/entry/syscall_64.c:63 x86/entry/syscall_64.c:94)
[ 92.562456][ C0] entry_SYSCALL_64_after_hwframe (x86/entry/entry_64.S:121)
[ 92.563689][ C0]
[ 92.564649][ C0] -> (&pid->wait_pidfd){....}-{3:3} {
[ 92.565868][ C0] INITIAL USE at:
[ 92.566983][ C0] __lock_acquire (locking/lockdep.c:5191)
[ 92.568286][ C0] lock_acquire (trace/events/lock.h:24 (discriminator 15) trace/events/lock.h:24 (discriminator 15) locking/lockdep.c:5831 (discriminator 15))
[ 92.569603][ C0] _raw_spin_lock_irqsave (linux/spinlock_api_smp.h:132 (discriminator 1) locking/spinlock.c:166 (discriminator 1))
[ 92.570965][ C0] __wake_up (sched/wait.c:124 (discriminator 1) sched/wait.c:146 (discriminator 1))
[ 92.572231][ C0] do_notify_parent (signal.c:2156 signal.c:2184)
[ 92.573541][ C0] exit_notify (exit.c:757)
[ 92.574834][ C0] do_exit (exit.c:987)
[ 92.576106][ C0] kthread (kthread.c:438)
[ 92.577494][ C0] ret_from_fork (x86/kernel/process.c:158)
[ 92.578795][ C0] ret_from_fork_asm (x86/entry/entry_64.S:245)
[ 92.580104][ C0] }
[ 92.581115][ C0] ... key at: __key.3+0x0/0x40
[ 92.582473][ C0] ... acquired at:
[ 92.583582][ C0] __lock_acquire (locking/lockdep.c:5237)
[ 92.584748][ C0] lock_acquire (trace/events/lock.h:24 (discriminator 15) trace/events/lock.h:24 (discriminator 15) locking/lockdep.c:5831 (discriminator 15))
[ 92.585949][ C0] _raw_spin_lock_irqsave (linux/spinlock_api_smp.h:132 (discriminator 1) locking/spinlock.c:166 (discriminator 1))
[ 92.587170][ C0] __wake_up (sched/wait.c:124 (discriminator 1) sched/wait.c:146 (discriminator 1))
[ 92.588284][ C0] __exit_signal (exit.c:142 exit.c:212)
[ 92.589434][ C0] release_task (exit.c:265)
[ 92.590586][ C0] exit_notify (exit.c:776)
[ 92.591725][ C0] do_exit (exit.c:987)
[ 92.592834][ C0] kthread (kthread.c:438)
[ 92.593966][ C0] ret_from_fork (x86/kernel/process.c:158)
[ 92.595127][ C0] ret_from_fork_asm (x86/entry/entry_64.S:245)
[ 92.596277][ C0]
[ 92.597241][ C0] -> (&____s->seqcount#3){....}-{0:0} {
[ 92.598469][ C0] INITIAL USE at:
[ 92.599564][ C0] __lock_acquire (locking/lockdep.c:5191)
[ 92.600850][ C0] lock_acquire (trace/events/lock.h:24 (discriminator 15) trace/events/lock.h:24 (discriminator 15) locking/lockdep.c:5831 (discriminator 15))
[ 92.602201][ C0] __exit_signal (linux/seqlock.h:478 (discriminator 1) linux/seqlock.h:504 (discriminator 1) linux/seqlock.h:881 (discriminator 1) exit.c:199 (discriminator 1))
[ 92.603491][ C0] release_task (exit.c:265)
[ 92.604770][ C0] exit_notify (exit.c:776)
[ 92.606066][ C0] do_exit (exit.c:987)
[ 92.607334][ C0] kthread (kthread.c:438)
[ 92.608581][ C0] ret_from_fork (x86/kernel/process.c:158)
[ 92.609873][ C0] ret_from_fork_asm (x86/entry/entry_64.S:245)
[ 92.611166][ C0] INITIAL READ USE at:
[ 92.612286][ C0] __lock_acquire (locking/lockdep.c:5191)
[ 92.613596][ C0] lock_acquire (trace/events/lock.h:24 (discriminator 15) trace/events/lock.h:24 (discriminator 15) locking/lockdep.c:5831 (discriminator 15))
[ 92.615780][ C0] thread_group_cputime (linux/seqlock.h:73 (discriminator 1) linux/seqlock.h:838 (discriminator 1) sched/cputime.c:345 (discriminator 1))
[ 92.617425][ C0] thread_group_cputime_adjusted (sched/cputime.c:644)
[ 92.619121][ C0] wait_task_zombie (exit.c:1234)
[ 92.620533][ C0] __do_wait (exit.c:1646 exit.c:1681)
[ 92.621885][ C0] do_wait (exit.c:1722)
[ 92.623341][ C0] kernel_wait (exit.c:1898)
The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20260618/202606180805.1b2fdd03-lkp@intel.com
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2026-06-18 6:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-18 6:36 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-06-12 11:05 [PATCH] pidfs: pin stashed dentry for pid lifetime to fix repeat-open regression A. Sterling
2026-06-17 13:13 ` Christian Brauner
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=202606180805.1b2fdd03-lkp@intel.com \
--to=oliver.sang@intel.com \
--cc=adam.sterling@gmail.com \
--cc=brauner@kernel.org \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=oe-lkp@lists.linux.dev \
--cc=viro@zeniv.linux.org.uk \
/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