Advertisement
zzqq0103

Untitled

Jan 14th, 2025
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.00 KB | None | 0 0
  1. ======================================================
  2. WARNING: possible circular locking dependency detected
  3. 6.12.0-rc4 #1 Not tainted
  4. ------------------------------------------------------
  5. iou-sqp-1708/1710 is trying to acquire lock:
  6. ffff8881092d8538 (&ids->rwsem){++++}-{3:3}, at: __shm_close+0x49/0x740 ipc/shm.c:374
  7.  
  8. but task is already holding lock:
  9. ffff88810e962fd8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_write_lock include/linux/mmap_lock.h:106 [inline]
  10. ffff88810e962fd8 (&mm->mmap_lock){++++}-{3:3}, at: exit_mmap+0x1cc/0xa60 mm/mmap.c:1882
  11.  
  12. which lock already depends on the new lock.
  13.  
  14.  
  15. the existing dependency chain (in reverse order) is:
  16.  
  17. -> #4 (&mm->mmap_lock){++++}-{3:3}:
  18. __might_fault mm/memory.c:6705 [inline]
  19. __might_fault+0x110/0x190 mm/memory.c:6698
  20. _inline_copy_from_user include/linux/uaccess.h:161 [inline]
  21. _copy_from_user+0x2b/0xf0 lib/usercopy.c:18
  22. copy_from_user include/linux/uaccess.h:203 [inline]
  23. memdup_user+0x72/0xd0 mm/util.c:230
  24. strndup_user+0x78/0xe0 mm/util.c:285
  25. perf_event_set_filter kernel/events/core.c:11171 [inline]
  26. _perf_ioctl+0x4b0/0x22b0 kernel/events/core.c:6077
  27. perf_ioctl+0x74/0xb0 kernel/events/core.c:6148
  28. vfs_ioctl fs/ioctl.c:51 [inline]
  29. __do_sys_ioctl fs/ioctl.c:907 [inline]
  30. __se_sys_ioctl fs/ioctl.c:893 [inline]
  31. __x64_sys_ioctl+0x1a0/0x210 fs/ioctl.c:893
  32. do_syscall_x64 arch/x86/entry/common.c:52 [inline]
  33. do_syscall_64+0xbf/0x1d0 arch/x86/entry/common.c:83
  34. entry_SYSCALL_64_after_hwframe+0x77/0x7f
  35.  
  36. -> #3 (&cpuctx_mutex){+.+.}-{3:3}:
  37. __mutex_lock_common kernel/locking/mutex.c:608 [inline]
  38. __mutex_lock+0x11d/0xa50 kernel/locking/mutex.c:752
  39. perf_event_init_cpu+0x2f3/0x880 kernel/events/core.c:14047
  40. perf_event_init+0x53e/0x7e0 kernel/events/core.c:14093
  41. start_kernel+0x282/0x570 init/main.c:1025
  42. x86_64_start_reservations+0x18/0x30 arch/x86/kernel/head64.c:507
  43. x86_64_start_kernel+0xdb/0xf0 arch/x86/kernel/head64.c:488
  44. common_startup_64+0x12c/0x138
  45.  
  46. -> #2 (pmus_lock){+.+.}-{3:3}:
  47. __mutex_lock_common kernel/locking/mutex.c:608 [inline]
  48. __mutex_lock+0x11d/0xa50 kernel/locking/mutex.c:752
  49. perf_event_init_cpu+0xcd/0x880 kernel/events/core.c:14042
  50. cpuhp_invoke_callback+0x3e5/0x9e0 kernel/cpu.c:194
  51. __cpuhp_invoke_callback_range+0x104/0x220 kernel/cpu.c:965
  52. cpuhp_invoke_callback_range kernel/cpu.c:989 [inline]
  53. cpuhp_up_callbacks kernel/cpu.c:1020 [inline]
  54. _cpu_up+0x1e1/0x2c0 kernel/cpu.c:1690
  55. cpu_up+0x130/0x1b0 kernel/cpu.c:1722
  56. cpuhp_bringup_mask+0xdb/0x200 kernel/cpu.c:1788
  57. cpuhp_bringup_cpus_parallel kernel/cpu.c:1878 [inline]
  58. bringup_nonboot_cpus+0x1ec/0x250 kernel/cpu.c:1892
  59. smp_init+0x32/0x160 kernel/smp.c:1009
  60. kernel_init_freeable+0x424/0xc00 init/main.c:1572
  61. kernel_init+0x1e/0x310 init/main.c:1469
  62. ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
  63. ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
  64.  
  65. -> #1 (cpu_hotplug_lock){++++}-{0:0}:
  66. percpu_down_read include/linux/percpu-rwsem.h:51 [inline]
  67. cpus_read_lock+0x42/0x190 kernel/cpu.c:490
  68. static_key_slow_inc+0x14/0x60 kernel/jump_label.c:190
  69. __hugetlb_vmemmap_optimize_folio+0x191/0x5f0 mm/hugetlb_vmemmap.c:574
  70. hugetlb_vmemmap_optimize_folio+0x86/0xc0 mm/hugetlb_vmemmap.c:625
  71. __prep_new_hugetlb_folio mm/hugetlb.c:1970 [inline]
  72. prep_new_hugetlb_folio mm/hugetlb.c:1975 [inline]
  73. alloc_fresh_hugetlb_folio+0x1df/0x290 mm/hugetlb.c:2099
  74. alloc_surplus_hugetlb_folio+0x13e/0x2c0 mm/hugetlb.c:2313
  75. gather_surplus_pages+0x538/0x9a0 mm/hugetlb.c:2483
  76. hugetlb_acct_memory.part.0+0x78/0xd0 mm/hugetlb.c:4991
  77. hugetlb_acct_memory mm/hugetlb.c:4963 [inline]
  78. hugetlb_reserve_pages+0x4a6/0xd10 mm/hugetlb.c:6982
  79. hugetlb_file_setup+0x254/0x5f0 fs/hugetlbfs/inode.c:1628
  80. newseg+0x9fa/0xe10 ipc/shm.c:749
  81. ipcget_new ipc/util.c:345 [inline]
  82. ipcget+0xf6/0xea0 ipc/util.c:677
  83. ksys_shmget ipc/shm.c:839 [inline]
  84. __do_sys_shmget ipc/shm.c:844 [inline]
  85. __se_sys_shmget ipc/shm.c:842 [inline]
  86. __x64_sys_shmget+0x13c/0x1b0 ipc/shm.c:842
  87. do_syscall_x64 arch/x86/entry/common.c:52 [inline]
  88. do_syscall_64+0xbf/0x1d0 arch/x86/entry/common.c:83
  89. entry_SYSCALL_64_after_hwframe+0x77/0x7f
  90.  
  91. -> #0 (&ids->rwsem){++++}-{3:3}:
  92. check_prev_add kernel/locking/lockdep.c:3161 [inline]
  93. check_prevs_add kernel/locking/lockdep.c:3280 [inline]
  94. validate_chain kernel/locking/lockdep.c:3904 [inline]
  95. __lock_acquire+0x2b7c/0x4980 kernel/locking/lockdep.c:5202
  96. lock_acquire.part.0+0x11b/0x350 kernel/locking/lockdep.c:5825
  97. down_write+0x92/0x1f0 kernel/locking/rwsem.c:1577
  98. __shm_close+0x49/0x740 ipc/shm.c:374
  99. remove_vma+0xa4/0x190 mm/vma.c:330
  100. exit_mmap+0x44a/0xa60 mm/mmap.c:1898
  101. __mmput kernel/fork.c:1347 [inline]
  102. mmput+0xd5/0x350 kernel/fork.c:1369
  103. exit_mm kernel/exit.c:571 [inline]
  104. do_exit+0x9ae/0x2a60 kernel/exit.c:926
  105. io_sq_thread+0xb37/0x1980 io_uring/sqpoll.c:392
  106. ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
  107. ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
  108.  
  109. other info that might help us debug this:
  110.  
  111. Chain exists of:
  112. &ids->rwsem --> &cpuctx_mutex --> &mm->mmap_lock
  113.  
  114. Possible unsafe locking scenario:
  115.  
  116. CPU0 CPU1
  117. ---- ----
  118. lock(&mm->mmap_lock);
  119. lock(&cpuctx_mutex);
  120. lock(&mm->mmap_lock);
  121. lock(&ids->rwsem);
  122.  
  123. *** DEADLOCK ***
  124.  
  125. 1 lock held by iou-sqp-1708/1710:
  126. #0: ffff88810e962fd8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_write_lock include/linux/mmap_lock.h:106 [inline]
  127. #0: ffff88810e962fd8 (&mm->mmap_lock){++++}-{3:3}, at: exit_mmap+0x1cc/0xa60 mm/mmap.c:1882
  128.  
  129. stack backtrace:
  130. CPU: 3 UID: 0 PID: 1710 Comm: iou-sqp-1708 Not tainted 6.12.0-rc4 #1
  131. Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
  132. Call Trace:
  133. <TASK>
  134. __dump_stack lib/dump_stack.c:94 [inline]
  135. dump_stack_lvl+0x116/0x1b0 lib/dump_stack.c:120
  136. print_circular_bug+0x54d/0x870 kernel/locking/lockdep.c:2074
  137. check_noncircular+0x304/0x3d0 kernel/locking/lockdep.c:2206
  138. check_prev_add kernel/locking/lockdep.c:3161 [inline]
  139. check_prevs_add kernel/locking/lockdep.c:3280 [inline]
  140. validate_chain kernel/locking/lockdep.c:3904 [inline]
  141. __lock_acquire+0x2b7c/0x4980 kernel/locking/lockdep.c:5202
  142. lock_acquire.part.0+0x11b/0x350 kernel/locking/lockdep.c:5825
  143. down_write+0x92/0x1f0 kernel/locking/rwsem.c:1577
  144. __shm_close+0x49/0x740 ipc/shm.c:374
  145. remove_vma+0xa4/0x190 mm/vma.c:330
  146. exit_mmap+0x44a/0xa60 mm/mmap.c:1898
  147. __mmput kernel/fork.c:1347 [inline]
  148. mmput+0xd5/0x350 kernel/fork.c:1369
  149. exit_mm kernel/exit.c:571 [inline]
  150. do_exit+0x9ae/0x2a60 kernel/exit.c:926
  151. io_sq_thread+0xb37/0x1980 io_uring/sqpoll.c:392
  152. ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
  153. ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
  154. </TASK>
  155.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement