<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [CI][SHARDS] igt@gem_userptr_blits@* - dmesg-warn - WARNING: possible circular locking dependency detected"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=111870">111870</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[CI][SHARDS]  igt@gem_userptr_blits@* -  dmesg-warn - WARNING: possible circular locking dependency detected
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>DRI
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>DRI git
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>not set
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>not set
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>DRM/Intel
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>intel-gfx-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>lakshminarayana.vudum@intel.com
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>intel-gfx-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>intel-gfx-bugs@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre><a href="https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6977/shard-tglb4/igt@gem_userptr_blits@map-fixed-invalidate-busy.html">https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6977/shard-tglb4/igt@gem_userptr_blits@map-fixed-invalidate-busy.html</a>

<6> [502.459031] [IGT] gem_userptr_blits: executing
<6> [502.473146] [IGT] gem_userptr_blits: starting subtest
map-fixed-invalidate-busy
<4> [502.495825] 
<4> [502.495830] ======================================================
<4> [502.495832] WARNING: possible circular locking dependency detected
<4> [502.495835] 5.4.0-rc1-CI-CI_DRM_6977+ #1 Tainted: G     U           
<4> [502.495837] ------------------------------------------------------
<4> [502.495839] gem_userptr_bli/1289 is trying to acquire lock:
<4> [502.495842] ffff88847e3500c8 (&dev->struct_mutex/1){+.+.}, at:
userptr_mn_invalidate_range_start+0x1aa/0x200 [i915]
<4> [502.495902] 
but task is already holding lock:
<4> [502.495904] ffffffff822647c0 (mmu_notifier_invalidate_range_start){+.+.},
at: unmap_vmas+0x0/0x150
<4> [502.495910] 
which lock already depends on the new lock.

<4> [502.495912] 
the existing dependency chain (in reverse order) is:
<4> [502.495914] 
-> #3 (mmu_notifier_invalidate_range_start){+.+.}:
<4> [502.495918]        page_mkclean_one+0xda/0x210
<4> [502.495921]        rmap_walk_file+0xff/0x260
<4> [502.495923]        page_mkclean+0x9f/0xb0
<4> [502.495925]        clear_page_dirty_for_io+0xa2/0x300
<4> [502.495929]        mpage_submit_page+0x1a/0x70
<4> [502.495931]        mpage_process_page_bufs+0xe7/0x110
<4> [502.495933]        mpage_prepare_extent_to_map+0x1d2/0x2b0
<4> [502.495936]        ext4_writepages+0x592/0x1230
<4> [502.495938]        do_writepages+0x46/0xe0
<4> [502.495941]        __filemap_fdatawrite_range+0xc6/0x100
<4> [502.495943]        file_write_and_wait_range+0x3c/0x90
<4> [502.495945]        ext4_sync_file+0x154/0x500
<4> [502.495948]        do_fsync+0x33/0x60
<4> [502.495950]        __x64_sys_fsync+0xb/0x10
<4> [502.495953]        do_syscall_64+0x4f/0x210
<4> [502.495957]        entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [502.495958] 
-> #2 (&mapping->i_mmap_rwsem){++++}:
<4> [502.495962]        down_write+0x33/0x70
<4> [502.495964]        unmap_mapping_pages+0x48/0x130
<4> [502.496001]        i915_vma_revoke_mmap+0x81/0x1b0 [i915]
<4> [502.496036]        fence_update+0xb4/0x260 [i915]
<4> [502.496073]        i915_vma_unbind+0xac/0x4a0 [i915]
<4> [502.496116]        i915_gem_object_ggtt_pin+0x1bd/0x410 [i915]
<4> [502.496153]        i915_gem_object_pin_to_display_plane+0xd1/0x130 [i915]
<4> [502.496189]        intel_pin_and_fence_fb_obj+0xb3/0x230 [i915]
<4> [502.496224]        intel_plane_pin_fb+0x3c/0xd0 [i915]
<4> [502.496258]        intel_prepare_plane_fb+0x144/0x5d0 [i915]
<4> [502.496262]        drm_atomic_helper_prepare_planes+0x85/0x110
<4> [502.496295]        intel_atomic_commit+0xc6/0x2f0 [i915]
<4> [502.496298]        drm_atomic_helper_set_config+0x61/0x90
<4> [502.496301]        drm_mode_setcrtc+0x18e/0x720
<4> [502.496303]        drm_ioctl_kernel+0xa7/0xf0
<4> [502.496305]        drm_ioctl+0x2e1/0x390
<4> [502.496308]        do_vfs_ioctl+0xa0/0x6f0
<4> [502.496310]        ksys_ioctl+0x35/0x60
<4> [502.496312]        __x64_sys_ioctl+0x11/0x20
<4> [502.496314]        do_syscall_64+0x4f/0x210
<4> [502.496316]        entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [502.496318] 
-> #1 (&vm->mutex){+.+.}:
<4> [502.496349]        i915_gem_shrinker_taints_mutex+0x6d/0xe0 [i915]
<4> [502.496380]        i915_address_space_init+0x9f/0x160 [i915]
<4> [502.496412]        i915_ggtt_init_hw+0x55/0x170 [i915]
<4> [502.496432]        i915_driver_probe+0xc72/0x1620 [i915]
<4> [502.496453]        i915_pci_probe+0x43/0x1b0 [i915]
<4> [502.496456]        pci_device_probe+0x9e/0x120
<4> [502.496460]        really_probe+0xea/0x420
<4> [502.496462]        driver_probe_device+0x10b/0x120
<4> [502.496465]        device_driver_attach+0x4a/0x50
<4> [502.496467]        __driver_attach+0x97/0x130
<4> [502.496469]        bus_for_each_dev+0x74/0xc0
<4> [502.496472]        bus_add_driver+0x142/0x220
<4> [502.496474]        driver_register+0x56/0xf0
<4> [502.496476]        do_one_initcall+0x58/0x2ff
<4> [502.496479]        do_init_module+0x56/0x1f8
<4> [502.496481]        load_module+0x24b8/0x2a70
<4> [502.496483]        __do_sys_finit_module+0xe9/0x110
<4> [502.496485]        do_syscall_64+0x4f/0x210
<4> [502.496487]        entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [502.496489] 
-> #0 (&dev->struct_mutex/1){+.+.}:
<4> [502.496493]        __lock_acquire+0x1328/0x15d0
<4> [502.496496]        lock_acquire+0xa7/0x1c0
<4> [502.496498]        __mutex_lock+0x9a/0x9d0
<4> [502.496531]        userptr_mn_invalidate_range_start+0x1aa/0x200 [i915]
<4> [502.496538]        __mmu_notifier_invalidate_range_start+0xa3/0x180
<4> [502.496544]        unmap_vmas+0x143/0x150
<4> [502.496550]        unmap_region+0xa3/0x100
<4> [502.496554]        __do_munmap+0x25d/0x490
<4> [502.496558]        mmap_region+0xaf/0x620
<4> [502.496560]        do_mmap+0x3d8/0x5a0
<4> [502.496563]        vm_mmap_pgoff+0x98/0xf0
<4> [502.496565]        ksys_mmap_pgoff+0x196/0x1f0
<4> [502.496567]        do_syscall_64+0x4f/0x210
<4> [502.496569]        entry_SYSCALL_64_after_hwframe+0x49/0xbe
<4> [502.496571] 
other info that might help us debug this:

<4> [502.496574] Chain exists of:
  &dev->struct_mutex/1 --> &mapping->i_mmap_rwsem -->
mmu_notifier_invalidate_range_start

<4> [502.496579]  Possible unsafe locking scenario:

<4> [502.496581]        CPU0                    CPU1
<4> [502.496583]        ----                    ----
<4> [502.496585]   lock(mmu_notifier_invalidate_range_start);
<4> [502.496587]                                lock(&mapping->i_mmap_rwsem);
<4> [502.496590]                               
lock(mmu_notifier_invalidate_range_start);
<4> [502.496593]   lock(&dev->struct_mutex/1);
<4> [502.496595] 
 *** DEADLOCK ***</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>