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: <202509041248.b7ece14a-lkp@intel.com>
Date: Thu, 4 Sep 2025 13:20:30 +0800
From: kernel test robot <oliver.sang@...el.com>
To: "Liam R. Howlett" <Liam.Howlett@...cle.com>
CC: <oe-lkp@...ts.linux.dev>, <lkp@...el.com>, Vlastimil Babka
	<vbabka@...e.cz>, <maple-tree@...ts.infradead.org>, <linux-mm@...ck.org>,
	<linux-kernel@...r.kernel.org>, <oliver.sang@...el.com>
Subject: [vbabka:slub-percpu-sheaves-v6r2] [maple_tree] 99848157f7:
 WARNING:possible_circular_locking_dependency_detected



Hello,

kernel test robot noticed "WARNING:possible_circular_locking_dependency_detected" on:

commit: 99848157f71c03ca5e975b0e686def1d66e8b19f ("maple_tree: Sheaf conversion")
https://git.kernel.org/cgit/linux/kernel/git/vbabka/linux.git slub-percpu-sheaves-v6r2

in testcase: rcuscale
version: 
with following parameters:

	runtime: 300s
	scale_type: rcu



config: x86_64-randconfig-075-20250831
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)



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/202509041248.b7ece14a-lkp@intel.com


[   17.413963][   T74] WARNING: possible circular locking dependency detected
[   17.414491][   T74] 6.17.0-rc3-00017-g99848157f71c #1 Not tainted
[   17.414936][   T74] ------------------------------------------------------
[   17.415483][   T74] systemd-cryptse/74 is trying to acquire lock:
[ 17.415965][ T74] ffffffffb02789c0 (fs_reclaim){+.+.}-{0:0}, at: prepare_alloc_pages+0xd5/0x23d 
[   17.416782][   T74]
[   17.416782][   T74] but task is already holding lock:
[ 17.417298][ T74] ffff88812925dbf8 (&mapping->i_mmap_rwsem){++++}-{4:4}, at: vma_prepare (mm/vma.c:296) 
[   17.418021][   T74]
[   17.418021][   T74] which lock already depends on the new lock.
[   17.418021][   T74]
[   17.418779][   T74]
[   17.418779][   T74] the existing dependency chain (in reverse order) is:
[   17.419530][   T74]
[   17.419530][   T74] -> #1 (&mapping->i_mmap_rwsem){++++}-{4:4}:
[ 17.420152][ T74] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908) 
[ 17.420562][ T74] __lock_acquire (kernel/locking/lockdep.c:5237) 
[ 17.420968][ T74] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870) 
[ 17.421364][ T74] down_write (kernel/locking/rwsem.c:1315 kernel/locking/rwsem.c:1326 kernel/locking/rwsem.c:1591) 
[ 17.421735][ T74] dma_resv_lockdep (include/linux/fs.h:557 drivers/dma-buf/dma-resv.c:798) 
[ 17.422159][ T74] do_one_initcall (init/main.c:1269) 
[ 17.422573][ T74] do_initcalls (init/main.c:1330 init/main.c:1347) 
[ 17.423031][ T74] kernel_init_freeable (init/main.c:1583) 
[ 17.423481][ T74] kernel_init (init/main.c:1471) 
[ 17.423840][ T74] ret_from_fork (arch/x86/kernel/process.c:154) 
[ 17.424211][ T74] ret_from_fork_asm (arch/x86/entry/entry_64.S:258) 
[   17.424612][   T74]
[   17.424612][   T74] -> #0 (fs_reclaim){+.+.}-{0:0}:
[ 17.425162][ T74] check_noncircular (kernel/locking/lockdep.c:2179) 
[ 17.425561][ T74] check_prev_add (kernel/locking/lockdep.c:3166) 
[ 17.425954][ T74] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908) 
[ 17.426681][ T74] __lock_acquire (kernel/locking/lockdep.c:5237) 
[ 17.427085][ T74] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870) 
[ 17.427458][ T74] __fs_reclaim_acquire (mm/page_alloc.c:4235) 
[ 17.427840][ T74] prepare_alloc_pages+0xd5/0x23d 
[ 17.428255][ T74] __alloc_frozen_pages_noprof (mm/page_alloc.c:5137) 
[ 17.428658][ T74] alloc_slab_page (mm/slub.c:2990) 
[ 17.428987][ T74] allocate_slab (mm/slub.c:3155) 
[ 17.429316][ T74] ___slab_alloc (mm/slub.c:4406 (discriminator 3)) 
[ 17.429757][ T74] __kmem_cache_alloc_bulk (mm/slub.c:6757) 
[ 17.430188][ T74] refill_sheaf (mm/slub.c:2571) 
[ 17.430554][ T74] kmem_cache_return_sheaf (mm/slub.c:5174 (discriminator 1)) 
[ 17.430998][ T74] mas_destroy (lib/maple_tree.c:5384) 
[ 17.431366][ T74] mas_store_prealloc (lib/maple_tree.c:5292 (discriminator 4)) 
[ 17.431789][ T74] commit_merge (mm/vma.c:767) 
[ 17.432172][ T74] vma_expand (mm/vma.c:1158) 
[ 17.432530][ T74] vma_merge_new_range (mm/vma.c:1095 (discriminator 1)) 
[ 17.433237][ T74] __mmap_region (mm/vma.c:2664) 
[ 17.433621][ T74] mmap_region (mm/vma.c:2739) 
[ 17.433987][ T74] do_mmap (mm/mmap.c:559) 
[ 17.434342][ T74] vm_mmap_pgoff (mm/util.c:582) 
[ 17.434736][ T74] ksys_mmap_pgoff (mm/mmap.c:606) 
[ 17.435128][ T74] do_int80_emulation (arch/x86/entry/syscall_32.c:83 arch/x86/entry/syscall_32.c:172) 
[ 17.435557][ T74] asm_int80_emulation (arch/x86/include/asm/idtentry.h:626) 
[   17.436031][   T74]
[   17.436031][   T74] other info that might help us debug this:
[   17.436031][   T74]
[   17.436803][   T74]  Possible unsafe locking scenario:
[   17.436803][   T74]
[   17.437381][   T74]        CPU0                    CPU1
[   17.437800][   T74]        ----                    ----
[   17.438213][   T74]   lock(&mapping->i_mmap_rwsem);
[   17.438614][   T74]                                lock(fs_reclaim);
[   17.439118][   T74]                                lock(&mapping->i_mmap_rwsem);
[   17.439737][   T74]   lock(fs_reclaim);
[   17.440045][   T74]
[   17.440045][   T74]  *** DEADLOCK ***
[   17.440045][   T74]
[   17.440668][   T74] 2 locks held by systemd-cryptse/74:
[ 17.441085][ T74] #0: ffff88813b6a9d48 (&mm->mmap_lock){++++}-{4:4}, at: vm_mmap_pgoff (include/linux/mmap_lock.h:415 mm/util.c:578) 
[ 17.441777][ T74] #1: ffff88812925dbf8 (&mapping->i_mmap_rwsem){++++}-{4:4}, at: vma_prepare (mm/vma.c:296) 
[   17.442517][   T74]
[   17.442517][   T74] stack backtrace:
[   17.443019][   T74] CPU: 0 UID: 0 PID: 74 Comm: systemd-cryptse Not tainted 6.17.0-rc3-00017-g99848157f71c #1 PREEMPT(full)
[   17.443875][   T74] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   17.444619][   T74] Call Trace:
[   17.444877][   T74]  <TASK>
[ 17.445101][ T74] print_circular_bug (kernel/locking/lockdep.c:2046) 
[ 17.445469][ T74] check_noncircular (kernel/locking/lockdep.c:2179) 
[ 17.445823][ T74] ? add_chain_block (kernel/locking/lockdep.c:3442) 
[ 17.446245][ T74] check_prev_add (kernel/locking/lockdep.c:3166) 
[ 17.446608][ T74] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908) 
[ 17.446960][ T74] __lock_acquire (kernel/locking/lockdep.c:5237) 
[ 17.447332][ T74] ? prepare_alloc_pages+0xd5/0x23d 
[ 17.447831][ T74] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870) 
[ 17.448188][ T74] ? prepare_alloc_pages+0xd5/0x23d 
[ 17.448649][ T74] ? lookup_chain_cache (kernel/locking/lockdep.c:3801 (discriminator 1)) 
[ 17.449018][ T74] __fs_reclaim_acquire (mm/page_alloc.c:4235) 
[ 17.449456][ T74] ? prepare_alloc_pages+0xd5/0x23d 
[ 17.449923][ T74] prepare_alloc_pages+0xd5/0x23d 
[ 17.450400][ T74] __alloc_frozen_pages_noprof (mm/page_alloc.c:5137) 
[ 17.450855][ T74] ? __alloc_pages_slowpath+0xa4d/0xa4d 
[ 17.451376][ T74] ? lock_is_held_type (kernel/locking/lockdep.c:5601 kernel/locking/lockdep.c:5940) 
[ 17.451778][ T74] ? find_held_lock (kernel/locking/lockdep.c:5350) 
[ 17.452142][ T74] ? mark_lock (kernel/locking/lockdep.c:4731 (discriminator 3)) 
[ 17.452492][ T74] alloc_slab_page (mm/slub.c:2990) 
[ 17.452912][ T74] allocate_slab (mm/slub.c:3155) 
[ 17.453271][ T74] ___slab_alloc (mm/slub.c:4406 (discriminator 3)) 
[ 17.453601][ T74] ? lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870) 
[ 17.453949][ T74] ? refill_sheaf (mm/slub.c:2571) 
[ 17.454278][ T74] ? mark_lock (kernel/locking/lockdep.c:4731 (discriminator 3)) 
[ 17.454611][ T74] ? mark_held_locks (kernel/locking/lockdep.c:4325) 
[ 17.454987][ T74] __kmem_cache_alloc_bulk (mm/slub.c:6757) 
[ 17.455387][ T74] refill_sheaf (mm/slub.c:2571) 
[ 17.455731][ T74] kmem_cache_return_sheaf (mm/slub.c:5174 (discriminator 1)) 
[ 17.456221][ T74] mas_destroy (lib/maple_tree.c:5384) 
[ 17.456575][ T74] mas_store_prealloc (lib/maple_tree.c:5292 (discriminator 4)) 
[ 17.456968][ T74] ? mas_store (lib/maple_tree.c:5292) 
[ 17.457303][ T74] ? __mas_set_range (include/linux/maple_tree.h:755 (discriminator 20)) 
[ 17.457685][ T74] commit_merge (mm/vma.c:767) 
[ 17.458038][ T74] ? vma_complete (mm/vma.c:731) 
[ 17.458384][ T74] ? lock_is_held_type (kernel/locking/lockdep.c:5601 kernel/locking/lockdep.c:5940) 
[ 17.458757][ T74] vma_expand (mm/vma.c:1158) 
[ 17.459090][ T74] ? unmap_region (mm/vma.c:1121) 
[ 17.459519][ T74] ? can_vma_merge_right (mm/vma.c:197 mm/vma.c:440) 
[ 17.459890][ T74] vma_merge_new_range (mm/vma.c:1095 (discriminator 1)) 
[ 17.460253][ T74] __mmap_region (mm/vma.c:2664) 
[ 17.460604][ T74] ? __mmap_new_vma (mm/vma.c:2641) 
[ 17.460977][ T74] ? inc_stack_record_count (include/linux/refcount.h:290 include/linux/refcount.h:312 mm/page_owner.c:216) 
[ 17.461414][ T74] ? lock_is_held_type (kernel/locking/lockdep.c:5601 kernel/locking/lockdep.c:5940) 
[ 17.461808][ T74] ? mas_prev_slot (lib/maple_tree.c:4369) 
[ 17.462190][ T74] ? mas_prev_slot (lib/maple_tree.c:5664) 
[ 17.462586][ T74] ? lock_is_held_type (kernel/locking/lockdep.c:5601 kernel/locking/lockdep.c:5940) 
[ 17.463001][ T74] mmap_region (mm/vma.c:2739) 
[ 17.463353][ T74] ? generic_file_readonly_mmap (mm/filemap.c:3852) 
[ 17.463779][ T74] do_mmap (mm/mmap.c:559) 
[ 17.464082][ T74] ? __get_unmapped_area (mm/mmap.c:339) 
[ 17.464468][ T74] ? tracer_preempt_on (kernel/trace/trace_irqsoff.c:689) 
[ 17.464878][ T74] vm_mmap_pgoff (mm/util.c:582) 
[ 17.465244][ T74] ? randomize_page (mm/util.c:568) 
[ 17.465615][ T74] ksys_mmap_pgoff (mm/mmap.c:606) 
[ 17.466035][ T74] do_int80_emulation (arch/x86/entry/syscall_32.c:83 arch/x86/entry/syscall_32.c:172) 
[ 17.466429][ T74] asm_int80_emulation (arch/x86/include/asm/idtentry.h:626) 
[   17.466827][   T74] RIP: 0023:0xf7f95cb0
[ 17.467133][ T74] Code: 4c 24 34 89 44 24 0c 8b 44 24 44 8b 54 24 38 8b 74 24 3c 8b 7c 24 40 a9 ff 0f 00 00 75 1c c1 e8 0c 89 c5 b8 c0 00 00 00 cd 80 <3d> 00 f0 ff ff 77 21 83 c4 1c 5b 5e 5f 5d c3 90 83 c4 1c b8 ea ff
All code
========
   0:	4c 24 34             	rex.WR and $0x34,%al
   3:	89 44 24 0c          	mov    %eax,0xc(%rsp)
   7:	8b 44 24 44          	mov    0x44(%rsp),%eax
   b:	8b 54 24 38          	mov    0x38(%rsp),%edx
   f:	8b 74 24 3c          	mov    0x3c(%rsp),%esi
  13:	8b 7c 24 40          	mov    0x40(%rsp),%edi
  17:	a9 ff 0f 00 00       	test   $0xfff,%eax
  1c:	75 1c                	jne    0x3a
  1e:	c1 e8 0c             	shr    $0xc,%eax
  21:	89 c5                	mov    %eax,%ebp
  23:	b8 c0 00 00 00       	mov    $0xc0,%eax
  28:	cd 80                	int    $0x80
  2a:*	3d 00 f0 ff ff       	cmp    $0xfffff000,%eax		<-- trapping instruction
  2f:	77 21                	ja     0x52


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20250904/202509041248.b7ece14a-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