From: kernel test robot <oliver.sang@intel.com>
To: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: <oe-lkp@lists.linux.dev>, <lkp@intel.com>,
Vlastimil Babka <vbabka@suse.cz>,
<maple-tree@lists.infradead.org>, <linux-mm@kvack.org>,
<linux-kernel@vger.kernel.org>, <oliver.sang@intel.com>
Subject: [vbabka:slub-percpu-sheaves-v6r2] [maple_tree] 99848157f7: WARNING:possible_circular_locking_dependency_detected
Date: Thu, 4 Sep 2025 13:20:30 +0800 [thread overview]
Message-ID: <202509041248.b7ece14a-lkp@intel.com> (raw)
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@intel.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
next reply other threads:[~2025-09-04 5:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-04 5:20 kernel test robot [this message]
2025-09-04 15:13 ` [vbabka:slub-percpu-sheaves-v6r2] [maple_tree] 99848157f7: WARNING:possible_circular_locking_dependency_detected Vlastimil Babka
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=202509041248.b7ece14a-lkp@intel.com \
--to=oliver.sang@intel.com \
--cc=Liam.Howlett@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=maple-tree@lists.infradead.org \
--cc=oe-lkp@lists.linux.dev \
--cc=vbabka@suse.cz \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.