1. 17 11月, 2020 2 次提交
  2. 21 9月, 2020 1 次提交
  3. 07 9月, 2020 1 次提交
  4. 18 8月, 2020 1 次提交
  5. 09 7月, 2020 1 次提交
  6. 18 6月, 2020 2 次提交
  7. 19 5月, 2020 1 次提交
  8. 11 5月, 2020 2 次提交
  9. 30 4月, 2020 1 次提交
  10. 23 4月, 2020 1 次提交
  11. 26 3月, 2020 1 次提交
  12. 20 3月, 2020 1 次提交
  13. 22 12月, 2019 1 次提交
  14. 13 12月, 2019 1 次提交
  15. 25 11月, 2019 1 次提交
  16. 24 11月, 2019 1 次提交
  17. 08 11月, 2019 2 次提交
  18. 01 11月, 2019 2 次提交
  19. 18 10月, 2019 1 次提交
  20. 04 10月, 2019 3 次提交
  21. 27 9月, 2019 1 次提交
  22. 22 8月, 2019 1 次提交
  23. 19 8月, 2019 1 次提交
  24. 09 8月, 2019 1 次提交
  25. 08 8月, 2019 1 次提交
  26. 13 7月, 2019 1 次提交
  27. 26 6月, 2019 1 次提交
  28. 21 6月, 2019 1 次提交
  29. 20 6月, 2019 1 次提交
    • C
      drm/i915/execlists: Preempt-to-busy · 22b7a426
      Chris Wilson 提交于
      When using a global seqno, we required a precise stop-the-workd event to
      handle preemption and unwind the global seqno counter. To accomplish
      this, we would preempt to a special out-of-band context and wait for the
      machine to report that it was idle. Given an idle machine, we could very
      precisely see which requests had completed and which we needed to feed
      back into the run queue.
      
      However, now that we have scrapped the global seqno, we no longer need
      to precisely unwind the global counter and only track requests by their
      per-context seqno. This allows us to loosely unwind inflight requests
      while scheduling a preemption, with the enormous caveat that the
      requests we put back on the run queue are still _inflight_ (until the
      preemption request is complete). This makes request tracking much more
      messy, as at any point then we can see a completed request that we
      believe is not currently scheduled for execution. We also have to be
      careful not to rewind RING_TAIL past RING_HEAD on preempting to the
      running context, and for this we use a semaphore to prevent completion
      of the request before continuing.
      
      To accomplish this feat, we change how we track requests scheduled to
      the HW. Instead of appending our requests onto a single list as we
      submit, we track each submission to ELSP as its own block. Then upon
      receiving the CS preemption event, we promote the pending block to the
      inflight block (discarding what was previously being tracked). As normal
      CS completion events arrive, we then remove stale entries from the
      inflight tracker.
      
      v2: Be a tinge paranoid and ensure we flush the write into the HWS page
      for the GPU semaphore to pick in a timely fashion.
      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/20190620142052.19311-1-chris@chris-wilson.co.uk
      22b7a426
  30. 19 6月, 2019 1 次提交
  31. 14 6月, 2019 2 次提交
  32. 11 6月, 2019 1 次提交