1. 24 3月, 2021 1 次提交
    • M
      drm/i915: Do not share hwsp across contexts any more, v8. · 12ca695d
      Maarten Lankhorst 提交于
      Instead of sharing pages with breadcrumbs, give each timeline a
      single page. This allows unrelated timelines not to share locks
      any more during command submission.
      
      As an additional benefit, seqno wraparound no longer requires
      i915_vma_pin, which means we no longer need to worry about a
      potential -EDEADLK at a point where we are ready to submit.
      
      Changes since v1:
      - Fix erroneous i915_vma_acquire that should be a i915_vma_release (ickle).
      - Extra check for completion in intel_read_hwsp().
      Changes since v2:
      - Fix inconsistent indent in hwsp_alloc() (kbuild)
      - memset entire cacheline to 0.
      Changes since v3:
      - Do same in intel_timeline_reset_seqno(), and clflush for good measure.
      Changes since v4:
      - Use refcounting on timeline, instead of relying on i915_active.
      - Fix waiting on kernel requests.
      Changes since v5:
      - Bump amount of slots to maximum (256), for best wraparounds.
      - Add hwsp_offset to i915_request to fix potential wraparound hang.
      - Ensure timeline wrap test works with the changes.
      - Assign hwsp in intel_timeline_read_hwsp() within the rcu lock to
        fix a hang.
      Changes since v6:
      - Rename i915_request_active_offset to i915_request_active_seqno(),
        and elaborate the function. (tvrtko)
      Changes since v7:
      - Move hunk to where it belongs. (jekstrand)
      - Replace CACHELINE_BYTES with TIMELINE_SEQNO_BYTES. (jekstrand)
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: Thomas Hellström <thomas.hellstrom@intel.com> #v1
      Reported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210323155059.628690-2-maarten.lankhorst@linux.intel.com
      12ca695d
  2. 12 3月, 2021 1 次提交
  3. 02 2月, 2021 1 次提交
  4. 16 1月, 2021 2 次提交
  5. 15 1月, 2021 1 次提交
  6. 14 1月, 2021 1 次提交
  7. 13 1月, 2021 3 次提交
  8. 24 12月, 2020 1 次提交
  9. 22 12月, 2020 1 次提交
  10. 21 12月, 2020 1 次提交
  11. 10 12月, 2020 2 次提交
  12. 20 11月, 2020 3 次提交
  13. 13 11月, 2020 1 次提交
  14. 06 11月, 2020 1 次提交
  15. 29 10月, 2020 1 次提交
  16. 18 9月, 2020 1 次提交
  17. 07 9月, 2020 3 次提交
  18. 24 8月, 2020 1 次提交
  19. 09 7月, 2020 4 次提交
  20. 20 6月, 2020 1 次提交
  21. 18 6月, 2020 1 次提交
  22. 16 6月, 2020 3 次提交
  23. 10 6月, 2020 2 次提交
  24. 05 6月, 2020 1 次提交
  25. 03 6月, 2020 1 次提交
  26. 01 6月, 2020 1 次提交
    • C
      drm/i915: Handle very early engine initialisation failure · 0b0b2549
      Chris Wilson 提交于
      If we fail during engine setup, we may leave some engines not yet setup.
      During the error cleanup, we have to be careful not to try and use the
      uninitialise engines before discarding them.
      
      [   16.136152] RIP: 0010:__flush_work+0x198/0x1b0
      [   16.136168] Code: ff ff 8b 0b 48 8b 53 08 83 e1 08 48 0f ba 2b 03 80 c9 f0 e9 63 ff ff ff 0f 0b 48 83 c4 48 44 89 f0 5b 5d 41 5c 41 5d 41 5e c3 <0f> 0b 45 31 f6 e9 62 ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 0f
      [   16.136186] RSP: 0018:ffffc900003bb928 EFLAGS: 00010246
      [   16.136201] RAX: 0000000000000000 RBX: ffff88844f392168 RCX: 0000000000000000
      [   16.136216] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88844f392168
      [   16.136231] RBP: ffff88844f392130 R08: 0000000000000000 R09: 0000000000000001
      [   16.136246] R10: ffff888441e31e40 R11: ffff88845e329c70 R12: ffff88844f796988
      [   16.136261] R13: ffff888441e4fb80 R14: 0000000000000001 R15: ffff88844f790000
      [   16.136388] FS:  00007fecbd208880(0000) GS:ffff88845e380000(0000) knlGS:0000000000000000
      [   16.136405] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   16.136420] CR2: 00007ff3ce748f90 CR3: 0000000457a6a001 CR4: 00000000000606e0
      [   16.136437] Call Trace:
      [   16.136456]  ? try_to_del_timer_sync+0x3a/0x50
      [   16.136529]  intel_wakeref_wait_for_idle+0x87/0xb0 [i915]
      [   16.136606]  ? intel_engines_release+0x68/0xc0 [i915]
      [   16.136680]  intel_engines_release+0x49/0xc0 [i915]
      [   16.136757]  intel_gt_init+0x2f4/0x5e0 [i915]
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NMika Kuoppala <mika.kuoppala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200601072446.19548-1-chris@chris-wilson.co.uk
      0b0b2549