1. 20 Sep, 2021 4 commits
  2. 19 Sep, 2021 4 commits
  3. 17 Sep, 2021 1 commit
    • Maarten Lankhorst's avatar
      kernel/locking: Add context to ww_mutex_trylock() · 12235da8
      Maarten Lankhorst authored
      i915 will soon gain an eviction path that trylock a whole lot of locks
      for eviction, getting dmesg failures like below:
      
        BUG: MAX_LOCK_DEPTH too low!
        turning off the locking correctness validator.
        depth: 48  max: 48!
        48 locks held by i915_selftest/5776:
         #0: ffff888101a79240 (&dev->mutex){....}-{3:3}, at: __driver_attach+0x88/0x160
         #1: ffffc900009778c0 (reservation_ww_class_acquire){+.+.}-{0:0}, at: i915_vma_pin.constprop.63+0x39/0x1b0 [i915]
         #2: ffff88800cf74de8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_vma_pin.constprop.63+0x5f/0x1b0 [i915]
         #3: ffff88810c7f9e38 (&vm->mutex/1){+.+.}-{3:3}, at: i915_vma_pin_ww+0x1c4/0x9d0 [i915]
         #4: ffff88810bad5768 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_gem_evict_something+0x110/0x860 [i915]
         #5: ffff88810bad60e8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_gem_evict_something+0x110/0x860 [i915]
        ...
         #46: ffff88811964d768 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_gem_evict_something+0x110/0x860 [i915]
         #47: ffff88811964e0e8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_gem_evict_something+0x110/0x860 [i915]
        INFO: lockdep is turned off.
      
      Fixing eviction to nest into ww_class_acquire is a high priority, but
      it requires a rework of the entire driver, which can only be done one
      step at a time.
      
      As an intermediate solution, add an acquire context to
      ww_mutex_trylock, which allows us to do proper nesting annotations on
      the trylocks, making the above lockdep splat disappear.
      
      This is also useful in regulator_lock_nested, which may avoid dropping
      regulator_nesting_mutex in the uncontended path, so use it there.
      
      TTM may be another user for this, where we could lock a buffer in a
      fastpath with list locks held, without dropping all locks we hold.
      
      [peterz: rework actual ww_mutex_trylock() implementations]
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Link: https://lkml.kernel.org/r/YUBGPdDDjKlxAuXJ@hirez.programming.kicks-ass.net
      12235da8
  4. 16 Sep, 2021 1 commit
  5. 15 Sep, 2021 3 commits
    • Janusz Krzysztofik's avatar
      drm/i915: Mark GPU wedging on driver unregister unrecoverable · dc34ca92
      Janusz Krzysztofik authored
      GPU wedged flag now set on driver unregister to prevent from further
      using the GPU can be then cleared unintentionally when calling
      __intel_gt_unset_wedged() still before the flag is finally marked
      unrecoverable.  We need to have it marked unrecoverable earlier.
      Implement that by replacing a call to intel_gt_set_wedged() in
      intel_gt_driver_unregister() with intel_gt_set_wedged_on_fini().
      
      With the above in place, intel_gt_set_wedged_on_fini() is now called
      twice on driver remove, second time from __intel_gt_disable().  This
      seems harmless, while dropping intel_gt_set_wedged_on_fini() from
      __intel_gt_disable() proved to break some driver probe error unwind
      paths as well as mock selftest exit path.
      Signed-off-by: default avatarJanusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>
      Reviewed-by: default avatarMichał Winiarski <michal.winiarski@intel.com>
      Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210903142837.216978-1-janusz.krzysztofik@linux.intel.com
      dc34ca92
    • Maarten Lankhorst's avatar
      drm/i915: Add mmap lock around vma_lookup() in the mman selftest. · ce079f6d
      Maarten Lankhorst authored
      Add mmap_read_lock/unlock around vma_lookup(). The core code requires
      this for lookups. Since we only check if the return value is NULL,
      we can immediately unlock.
      
      This fixes the following splat in the selftes:
      
      i915: Running i915_gem_mman_live_selftests/igt_mmap
      ------------[ cut here ]------------
      WARNING: CPU: 3 PID: 5654 at include/linux/mmap_lock.h:164 find_vma+0x4e/0xb0
      Modules linked in: i915(+) vgem fuse snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio mei_hdcp x86_pkg_temp_thermal coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_intel_dspcfg snd_hda_codec snd_hwdep e1000e snd_hda_core ptp snd_pcm ttm mei_me pps_core i2c_i801 prime_numbers i2c_smbus mei [last unloaded: i915]
      CPU: 3 PID: 5654 Comm: i915_selftest Tainted: G     U            5.15.0-rc1-CI-Trybot_7984+ #1
      Hardware name: Micro-Star International Co., Ltd. MS-7B54/Z370M MORTAR (MS-7B54), BIOS 1.00 10/31/2017
      RIP: 0010:find_vma+0x4e/0xb0
      Code: de 48 89 ef e8 d3 94 fe ff 48 85 c0 74 34 48 83 c4 08 5b 5d c3 48 8d bf 28 01 00 00 be ff ff ff ff e8 d6 46 8b 00 85 c0 75 c8 <0f> 0b 48 8b 85 b8 00 00 00 48 85 c0 75 c6 48 89 ef e8 12 26 87 00
      RSP: 0018:ffffc900013df980 EFLAGS: 00010246
      RAX: 0000000000000000 RBX: 00007f9df2b80000 RCX: 0000000000000000
      RDX: 0000000000000001 RSI: ffffffff822e314c RDI: ffffffff8233c83f
      RBP: ffff88811bafc840 R08: ffff888107d0ddb8 R09: 00000000fffffffe
      R10: 0000000000000001 R11: 00000000ffbae7ba R12: 0000000000000000
      R13: 0000000000000000 R14: ffff88812a710000 R15: ffff888114fa42c0
      FS:  00007f9def9d4c00(0000) GS:ffff888266580000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 00007f799627fe50 CR3: 000000011bbc2006 CR4: 00000000003706e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      Call Trace:
       __igt_mmap+0xe0/0x490 [i915]
       igt_mmap+0xd2/0x160 [i915]
       ? __trace_bprintk+0x6e/0x80
       __i915_subtests.cold.7+0x42/0x92 [i915]
       ? i915_perf_selftests+0x20/0x20 [i915]
       ? __i915_nop_setup+0x10/0x10 [i915]
       __run_selftests.part.3+0x10d/0x172 [i915]
       i915_live_selftests.cold.5+0x1f/0x47 [i915]
       i915_pci_probe+0x93/0x1d0 [i915]
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Closes: https://gitlab.freedesktop.org/drm/intel/issues/4129
      Link: https://patchwork.freedesktop.org/patch/msgid/20210915105946.394412-1-maarten.lankhorst@linux.intel.comReviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
      ce079f6d
    • Joonas Lahtinen's avatar
      Merge drm/drm-next into drm-intel-gt-next · d5dd580d
      Joonas Lahtinen authored
      Close the divergence which has caused patches not to apply and
      have a solid baseline for the PXP patches that Rodrigo will send
      a topic branch PR for.
      Signed-off-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
      d5dd580d
  6. 14 Sep, 2021 5 commits
  7. 13 Sep, 2021 22 commits