lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <202506191555.448b188b-lkp@intel.com>
Date: Thu, 19 Jun 2025 15:27:28 +0800
From: kernel test robot <oliver.sang@...el.com>
To: Christian Brauner <brauner@...nel.org>
CC: <oe-lkp@...ts.linux.dev>, <lkp@...el.com>, Christian Brauner
	<christianvanbrauner@...il.com>, <linux-fsdevel@...r.kernel.org>,
	<linux-kernel@...r.kernel.org>, <oliver.sang@...el.com>
Subject: [brauner-vfs:work.pidfs.xattr] [pidfs]  e3bfecb731:
 WARNING:possible_irq_lock_inversion_dependency_detected



Hello,

kernel test robot noticed "WARNING:possible_irq_lock_inversion_dependency_detected" on:

commit: e3bfecb7310ade68457392f0e7d4c4ec22d0a401 ("pidfs: keep pidfs dentry stashed once created")
https://git.kernel.org/cgit/linux/kernel/git/vfs/vfs.git work.pidfs.xattr

in testcase: boot

config: x86_64-randconfig-078-20250618
compiler: gcc-12
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G

(please refer to attached dmesg/kmsg for entire log/backtrace)


+---------------------------------------------------------+-----------+------------+
|                                                         | v6.16-rc1 | e3bfecb731 |
+---------------------------------------------------------+-----------+------------+
| WARNING:possible_irq_lock_inversion_dependency_detected | 0         | 12         |
+---------------------------------------------------------+-----------+------------+


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@...el.com>
| Closes: https://lore.kernel.org/oe-lkp/202506191555.448b188b-lkp@intel.com


[   48.631814][    C0] WARNING: possible irq lock inversion dependency detected
[   48.632323][    C0] 6.16.0-rc1-00001-ge3bfecb7310a #1 Tainted: G                T
[   48.632866][    C0] --------------------------------------------------------
[   48.633351][    C0] sed/223 just changed the state of lock:
[ 48.633739][ C0] ffff8881123ae5d8 (&sighand->siglock){-...}-{3:3}, at: __lock_task_sighand (kernel/signal.c:1380) 
[   48.634422][    C0] but this lock took another, HARDIRQ-unsafe lock in the past:
[   48.634933][    C0]  (&lockref->lock){+.+.}-{3:3}
[   48.634939][    C0]
[   48.634939][    C0] and interrupts could create inverse lock ordering between them.
[   48.634939][    C0]
[   48.636229][    C0]
[   48.636229][    C0] other info that might help us debug this:
[   48.636782][    C0] Chain exists of:
[   48.636782][    C0]   &sighand->siglock --> &(&sig->stats_lock)->lock --> &lockref->lock
[   48.636782][    C0]
[   48.637722][    C0]  Possible interrupt unsafe locking scenario:
[   48.637722][    C0]
[   48.638283][    C0]        CPU0                    CPU1
[   48.638649][    C0]        ----                    ----
[   48.639015][    C0]   lock(&lockref->lock);
[   48.639315][    C0]                                local_irq_disable();
[   48.639774][    C0]                                lock(&sighand->siglock);
[   48.640257][    C0]                                lock(&(&sig->stats_lock)->lock);
[   48.640796][    C0]   <Interrupt>
[   48.641036][    C0]     lock(&sighand->siglock);
[   48.641365][    C0]
[   48.641365][    C0]  *** DEADLOCK ***
[   48.641365][    C0]
[   48.641932][    C0] 2 locks held by sed/223:
[ 48.642237][ C0] #0: ffffffff87307760 (rcu_read_lock){....}-{1:3}, at: kill_pid_info_type (kernel/signal.c:1451) 
[ 48.642895][ C0] #1: ffffffff87307760 (rcu_read_lock){....}-{1:3}, at: __lock_task_sighand (include/linux/rcupdate.h:331 include/linux/rcupdate.h:841 kernel/signal.c:1363) 
[   48.643557][    C0]
[   48.643557][    C0] the shortest dependencies between 2nd lock and 1st lock:
[   48.644192][    C0]     -> (&lockref->lock){+.+.}-{3:3} {
[   48.644575][    C0]        HARDIRQ-ON-W at:
[ 48.644885][ C0] __lock_acquire (kernel/locking/lockdep.c:5194) 
[ 48.645364][ C0] lock_acquire (kernel/locking/lockdep.c:473 kernel/locking/lockdep.c:5873 kernel/locking/lockdep.c:5828) 
[ 48.645824][ C0] _raw_spin_lock (include/linux/spinlock_api_smp.h:134 kernel/locking/spinlock.c:154) 
[ 48.646290][ C0] __d_instantiate (fs/dcache.c:1915 (discriminator 3)) 
[ 48.646767][ C0] d_instantiate (include/linux/spinlock.h:391 fs/dcache.c:1948) 
[ 48.647225][ C0] d_make_root (fs/dcache.c:1992) 
[ 48.647672][ C0] shmem_fill_super (mm/shmem.c:5106) 
[ 48.648170][ C0] get_tree_nodev (fs/super.c:1324 fs/super.c:1342) 
[ 48.648648][ C0] vfs_get_tree (fs/super.c:1803) 
[ 48.649107][ C0] vfs_kern_mount (fs/namespace.c:6278) 
[ 48.649620][ C0] kern_mount (fs/namespace.c:6273) 
[ 48.650062][ C0] shmem_init (mm/shmem.c:5413) 
[ 48.650512][ C0] mnt_init (fs/namespace.c:6257) 
[ 48.650954][ C0] vfs_caches_init (fs/dcache.c:3243) 
[ 48.651430][ C0] start_kernel (init/main.c:1084) 
[ 48.651894][ C0] x86_64_start_reservations (arch/x86/kernel/head64.c:295) 
[ 48.652443][ C0] x86_64_start_kernel (arch/x86/kernel/head64.c:231 (discriminator 17)) 
[ 48.652952][ C0] common_startup_64 (arch/x86/kernel/head_64.S:419) 
[   48.653433][    C0]        SOFTIRQ-ON-W at:
[ 48.653737][ C0] __lock_acquire (kernel/locking/lockdep.c:5194) 
[ 48.654213][ C0] lock_acquire (kernel/locking/lockdep.c:473 kernel/locking/lockdep.c:5873 kernel/locking/lockdep.c:5828) 
[ 48.654670][ C0] _raw_spin_lock (include/linux/spinlock_api_smp.h:134 kernel/locking/spinlock.c:154) 
[ 48.655132][ C0] __d_instantiate (fs/dcache.c:1915 (discriminator 3)) 
[ 48.655605][ C0] d_instantiate (include/linux/spinlock.h:391 fs/dcache.c:1948) 
[ 48.656062][ C0] d_make_root (fs/dcache.c:1992) 
[ 48.656507][ C0] shmem_fill_super (mm/shmem.c:5106) 
[ 48.657010][ C0] get_tree_nodev (fs/super.c:1324 fs/super.c:1342) 
[ 48.657480][ C0] vfs_get_tree (fs/super.c:1803) 
[ 48.657939][ C0] vfs_kern_mount (fs/namespace.c:6278) 
[ 48.658452][ C0] kern_mount (fs/namespace.c:6273) 
[ 48.658896][ C0] shmem_init (mm/shmem.c:5413) 
[ 48.659345][ C0] mnt_init (fs/namespace.c:6257) 
[ 48.659788][ C0] vfs_caches_init (fs/dcache.c:3243) 
[ 48.660264][ C0] start_kernel (init/main.c:1084) 
[ 48.660738][ C0] x86_64_start_reservations (arch/x86/kernel/head64.c:295) 
[ 48.661266][ C0] x86_64_start_kernel (arch/x86/kernel/head64.c:231 (discriminator 17)) 
[ 48.661766][ C0] common_startup_64 (arch/x86/kernel/head_64.S:419) 
[   48.662264][    C0]        INITIAL USE at:
[ 48.662555][ C0] __lock_acquire (kernel/locking/lockdep.c:5194) 
[ 48.663026][ C0] lock_acquire (kernel/locking/lockdep.c:473 kernel/locking/lockdep.c:5873 kernel/locking/lockdep.c:5828) 
[ 48.663479][ C0] _raw_spin_lock (include/linux/spinlock_api_smp.h:134 kernel/locking/spinlock.c:154) 
[ 48.663937][ C0] __d_instantiate (fs/dcache.c:1915 (discriminator 3)) 
[ 48.664406][ C0] d_instantiate (include/linux/spinlock.h:391 fs/dcache.c:1948) 
[ 48.664866][ C0] d_make_root (fs/dcache.c:1992) 
[ 48.665307][ C0] shmem_fill_super (mm/shmem.c:5106) 
[ 48.665796][ C0] get_tree_nodev (fs/super.c:1324 fs/super.c:1342) 
[ 48.666259][ C0] vfs_get_tree (fs/super.c:1803) 
[ 48.666711][ C0] vfs_kern_mount (fs/namespace.c:6278) 
[ 48.667216][ C0] kern_mount (fs/namespace.c:6273) 
[ 48.667651][ C0] shmem_init (mm/shmem.c:5413) 
[ 48.668092][ C0] mnt_init (fs/namespace.c:6257) 
[ 48.668527][ C0] vfs_caches_init (fs/dcache.c:3243) 
[ 48.669004][ C0] start_kernel (init/main.c:1084) 
[ 48.669461][ C0] x86_64_start_reservations (arch/x86/kernel/head64.c:295) 
[ 48.669982][ C0] x86_64_start_kernel (arch/x86/kernel/head64.c:231 (discriminator 17)) 
[ 48.670476][ C0] common_startup_64 (arch/x86/kernel/head_64.S:419) 
[   48.670950][    C0]      }
[ 48.671147][ C0] ... key at: __key.4+0x0/0x40 
[   48.671654][    C0]      ... acquired at:
[ 48.671958][ C0] __lock_acquire (kernel/locking/lockdep.c:5240) 
[ 48.672295][ C0] lock_acquire (kernel/locking/lockdep.c:473 kernel/locking/lockdep.c:5873 kernel/locking/lockdep.c:5828) 
[ 48.672616][ C0] _raw_spin_lock (include/linux/spinlock_api_smp.h:134 kernel/locking/spinlock.c:154) 
[ 48.672945][ C0] lockref_get (lib/lockref.c:51) 
[ 48.673244][ C0] pidfs_stash_dentry (fs/pidfs.c:973) 
[ 48.673603][ C0] path_from_stashed (fs/libfs.c:2243) 
[ 48.673956][ C0] pidfs_register_pid (fs/pidfs.c:1067) 
[ 48.674308][ C0] unix_socketpair (net/unix/af_unix.c:754 net/unix/af_unix.c:1782) 
[ 48.674650][ C0] __sys_socketpair (net/socket.c:1764) 
[ 48.674998][ C0] __do_compat_sys_socketcall (net/compat.c:470) 
[ 48.675405][ C0] __do_fast_syscall_32 (arch/x86/entry/syscall_32.c:83 arch/x86/entry/syscall_32.c:306) 
[ 48.675769][ C0] do_fast_syscall_32 (arch/x86/entry/syscall_32.c:331) 
[ 48.676116][ C0] entry_SYSENTER_compat_after_hwframe (arch/x86/entry/entry_64_compat.S:127) 
[   48.676561][    C0]
[   48.676737][    C0]    -> (&pid->wait_pidfd){....}-{3:3} {
[   48.677128][    C0]       INITIAL USE at:
[ 48.677415][ C0] __lock_acquire (kernel/locking/lockdep.c:5194) 
[ 48.677877][ C0] lock_acquire (kernel/locking/lockdep.c:473 kernel/locking/lockdep.c:5873 kernel/locking/lockdep.c:5828) 
[ 48.678321][ C0] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:111 kernel/locking/spinlock.c:162) 
[ 48.678820][ C0] __wake_up (kernel/sched/wait.c:106 kernel/sched/wait.c:127) 
[ 48.679243][ C0] do_notify_parent (kernel/signal.c:2187 (discriminator 11)) 
[ 48.679715][ C0] exit_notify (kernel/exit.c:762) 
[ 48.680160][ C0] do_exit (kernel/exit.c:979) 
[ 48.680582][ C0] kthread_exit (kernel/kthread.c:326) 
[ 48.681042][ C0] kthread (arch/x86/include/asm/current.h:25 include/linux/cgroup.h:649 kernel/kthread.c:462) 
[ 48.681464][ C0] ret_from_fork (arch/x86/kernel/process.c:154) 
[ 48.681920][ C0] ret_from_fork_asm (arch/x86/entry/entry_64.S:255) 
[   48.682410][    C0]     }
[ 48.682603][ C0] ... key at: __key.4+0x0/0x40 
[   48.683107][    C0]     ... acquired at:
[ 48.683386][ C0] __lock_acquire (kernel/locking/lockdep.c:5240) 
[ 48.683720][ C0] lock_acquire (kernel/locking/lockdep.c:473 kernel/locking/lockdep.c:5873 kernel/locking/lockdep.c:5828) 
[ 48.684037][ C0] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:111 kernel/locking/spinlock.c:162) 
[ 48.684404][ C0] __wake_up (kernel/sched/wait.c:106 kernel/sched/wait.c:127) 
[ 48.684704][ C0] __exit_signal (kernel/exit.c:143 kernel/exit.c:211) 
[ 48.685144][ C0] release_task (kernel/exit.c:274 (discriminator 11)) 
[ 48.685647][ C0] exit_notify (kernel/exit.c:780) 
[ 48.686160][ C0] do_exit (kernel/exit.c:979) 
[ 48.686618][ C0] kthread_exit (kernel/kthread.c:326) 
[ 48.687126][ C0] kthread (arch/x86/include/asm/current.h:25 include/linux/cgroup.h:649 kernel/kthread.c:462) 
[ 48.687588][ C0] ret_from_fork (arch/x86/kernel/process.c:154) 
[ 48.688085][ C0] ret_from_fork_asm (arch/x86/entry/entry_64.S:255) 
[   48.688603][    C0]
[   48.688848][    C0]   -> (&____s->seqcount#4){....}-{0:0} {
[   48.689419][    C0]      INITIAL USE at:
[ 48.689832][ C0] __lock_acquire (kernel/locking/lockdep.c:5194) 
[ 48.690480][ C0] lock_acquire (kernel/locking/lockdep.c:473 kernel/locking/lockdep.c:5873 kernel/locking/lockdep.c:5828) 
[ 48.691106][ C0] __exit_signal (include/linux/seqlock.h:431 include/linux/seqlock.h:478 include/linux/seqlock.h:503 include/linux/seqlock.h:877 kernel/exit.c:198) 
[ 48.691740][ C0] release_task (kernel/exit.c:274 (discriminator 11)) 
[ 48.692403][ C0] exit_notify (kernel/exit.c:780) 
[ 48.693050][ C0] do_exit (kernel/exit.c:979) 
[ 48.693684][ C0] kthread_exit (kernel/kthread.c:326) 
[ 48.694360][ C0] kthread (arch/x86/include/asm/current.h:25 include/linux/cgroup.h:649 kernel/kthread.c:462) 
[ 48.694973][ C0] ret_from_fork (arch/x86/kernel/process.c:154) 
[ 48.695646][ C0] ret_from_fork_asm (arch/x86/entry/entry_64.S:255) 
[   48.696356][    C0]      INITIAL READ USE at:
[ 48.696860][ C0] __lock_acquire (kernel/locking/lockdep.c:5194) 


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20250619/202506191555.448b188b-lkp@intel.com



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ