1. 18 5月, 2018 2 次提交
  2. 17 5月, 2018 6 次提交
  3. 11 5月, 2018 2 次提交
  4. 09 5月, 2018 1 次提交
  5. 08 5月, 2018 3 次提交
  6. 04 5月, 2018 1 次提交
  7. 03 5月, 2018 3 次提交
  8. 02 5月, 2018 1 次提交
  9. 30 4月, 2018 2 次提交
  10. 25 4月, 2018 1 次提交
  11. 19 4月, 2018 2 次提交
  12. 15 4月, 2018 1 次提交
    • C
      drm/i915: Check whitelist registers across resets · f4ecfbfc
      Chris Wilson 提交于
      Add a selftest to ensure that we restore the whitelisted registers after
      rewrite the registers everytime they might be scrubbed, e.g. module
      load, reset and resume. For the other volatile workaround registers, we
      export their presence via debugfs and check in igt/gem_workarounds.
      However, we don't export the whitelist and rather than do so, let's test
      them directly in the kernel.
      
      The test we use is to read the registers back from the CS (this helps us
      be sure that the registers will be valid for MI_LRI etc). In order to
      generate the expected list, we split intel_whitelist_workarounds_emit
      into two phases, the first to build the list and the second to apply.
      Inside the test, we only build the list and then check that list against
      the hw.
      
      v2: Filter out pre-gen8 as they do not have RING_NONPRIV.
      v3: Drop unused engine parameter, no plans to use it now or future.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Oscar Mateo <oscar.mateo@intel.com>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Reviewed-by: NOscar Mateo <oscar.mateo@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180414122754.569-1-chris@chris-wilson.co.uk
      f4ecfbfc
  13. 12 4月, 2018 3 次提交
  14. 09 4月, 2018 1 次提交
  15. 05 4月, 2018 1 次提交
  16. 04 4月, 2018 2 次提交
  17. 03 4月, 2018 1 次提交
  18. 29 3月, 2018 2 次提交
  19. 27 3月, 2018 3 次提交
  20. 24 3月, 2018 1 次提交
  21. 23 3月, 2018 1 次提交
    • C
      drm/i915: Flush pending interrupt following a GPU reset · 0f36a85c
      Chris Wilson 提交于
      After resetting the GPU (or subset of engines), call synchronize_irq()
      to flush any pending irq before proceeding with the cleanup. For a
      device level reset, we disable the interupts around the reset, but when
      resetting just one engine, we have to avoid such global disabling. This
      leaves us open to an interrupt arriving for the engine as we try to
      reset it. We already do try to flush the IIR following the reset, but we
      have to ensure that the in-flight interrupt does not land after we start
      cleaning up after the reset; enter synchronize_irq().
      
      As it current stands, we very rarely, but fatally, see sequences such as:
      
          2.... 57964564us : execlists_reset_prepare: rcs0
          2.... 57964613us : execlists_reset: rcs0 seqno=424
          0d.h1 57964615us : gen8_cs_irq_handler: rcs0 CS active=1
          2d..1 57964617us : __i915_request_unsubmit: rcs0 fence 29:1056 <- global_seqno 1060
          2.... 57964703us : execlists_reset_finish: rcs0
          0..s. 57964705us : execlists_submission_tasklet: rcs0 awake?=1, active=0, irq-posted?=1
      
      v2: Move the sync into the execlists reset handler so that we coordinate
      the flush with disabling the interrupt handling and canceling the
      pending interrupt.
      v3: Just use synchronize_hardirq() to avoid the might_sleep(), we do not
      yet have threaded-irq to worry about.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Cc: Michel Thierry <michel.thierry@intel.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>
      Cc: Jeff McGee <jeff.mcgee@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180322073533.5313-4-chris@chris-wilson.co.ukReviewed-by: NJeff McGee <jeff.mcgee@intel.com>
      0f36a85c