1. 22 10月, 2019 4 次提交
  2. 18 10月, 2019 4 次提交
  3. 17 10月, 2019 1 次提交
  4. 14 10月, 2019 1 次提交
  5. 12 10月, 2019 1 次提交
  6. 09 10月, 2019 3 次提交
  7. 08 10月, 2019 1 次提交
  8. 04 10月, 2019 12 次提交
  9. 02 10月, 2019 1 次提交
  10. 28 9月, 2019 1 次提交
  11. 27 9月, 2019 2 次提交
  12. 25 9月, 2019 1 次提交
  13. 20 9月, 2019 1 次提交
    • C
      drm/i915: Mark i915_request.timeline as a volatile, rcu pointer · d19d71fc
      Chris Wilson 提交于
      The request->timeline is only valid until the request is retired (i.e.
      before it is completed). Upon retiring the request, the context may be
      unpinned and freed, and along with it the timeline may be freed. We
      therefore need to be very careful when chasing rq->timeline that the
      pointer does not disappear beneath us. The vast majority of users are in
      a protected context, either during request construction or retirement,
      where the timeline->mutex is held and the timeline cannot disappear. It
      is those few off the beaten path (where we access a second timeline) that
      need extra scrutiny -- to be added in the next patch after first adding
      the warnings about dangerous access.
      
      One complication, where we cannot use the timeline->mutex itself, is
      during request submission onto hardware (under spinlocks). Here, we want
      to check on the timeline to finalize the breadcrumb, and so we need to
      impose a second rule to ensure that the request->timeline is indeed
      valid. As we are submitting the request, it's context and timeline must
      be pinned, as it will be used by the hardware. Since it is pinned, we
      know the request->timeline must still be valid, and we cannot submit the
      idle barrier until after we release the engine->active.lock, ergo while
      submitting and holding that spinlock, a second thread cannot release the
      timeline.
      
      v2: Don't be lazy inside selftests; hold the timeline->mutex for as long
      as we need it, and tidy up acquiring the timeline with a bit of
      refactoring (i915_active_add_request)
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190919111912.21631-1-chris@chris-wilson.co.uk
      d19d71fc
  14. 19 9月, 2019 1 次提交
  15. 14 9月, 2019 1 次提交
  16. 11 9月, 2019 2 次提交
  17. 10 9月, 2019 3 次提交
    • C
      drm/i915/selftests: Take runtime wakeref for igt_ggtt_lowlevel · 7c465310
      Chris Wilson 提交于
      Being a "low-level" test, we opt to bypass the normal bind/unbind hooks
      for the lower level insert_entries/clear_range. For ggtt, the
      bind/unbind hooks provide the runtime wakeref and so we must also handle
      this in exercising the low level hooks.
      
      <4> [538.151672] RPM raw-wakeref not held
      <4> [538.151825] WARNING: CPU: 0 PID: 11 at ./drivers/gpu/drm/i915/intel_runtime_pm.h:107 fwtable_read32+0x1be/0x300 [i915]
      <4> [538.151830] Modules linked in: i915(+) amdgpu gpu_sched ttm vgem snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic mei_hdcp btusb btrtl btbcm x86_pkg_temp_thermal coretemp btintel crct10dif_pclmul bluetooth crc32_pclmul snd_intel_nhlt snd_hda_codec ecdh_generic ghash_clmulni_intel ecc snd_hwdep snd_hda_core lpc_ich r8169 realtek snd_pcm mei_me mei prime_numbers pinctrl_broxton pinctrl_intel [last unloaded: i915]
      <4> [538.151861] CPU: 0 PID: 11 Comm: migration/0 Tainted: G     U            5.3.0-rc7-CI-Trybot_4938+ #1
      <4> [538.151864] Hardware name: Intel corporation NUC6CAYS/NUC6CAYB, BIOS AYAPLCEL.86A.0056.2018.0926.1100 09/26/2018
      <4> [538.151960] RIP: 0010:fwtable_read32+0x1be/0x300 [i915]
      <4> [538.151965] Code: e8 e7 f9 5f e0 e9 0b ff ff ff 80 3d d5 8d 26 00 00 0f 85 81 fe ff ff 48 c7 c7 ef 01 bd a0 c6 05 c1 8d 26 00 01 e8 b2 e4 6a e0 <0f> 0b e9 67 fe ff ff 80 3d ad 8d 26 00 00 0f 85 65 fe ff ff 48 c7
      <4> [538.151969] RSP: 0018:ffffc9000007be10 EFLAGS: 00010086
      <4> [538.151972] RAX: 0000000000000000 RBX: ffff88826be10d50 RCX: 0000000000000002
      <4> [538.151975] RDX: 0000000080000002 RSI: 0000000000000000 RDI: 00000000ffffffff
      <4> [538.151978] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
      <4> [538.151981] R10: 0000000000000000 R11: ffffc9000007bcb0 R12: 0000000000101008
      <4> [538.151984] R13: 0000000000000000 R14: ffffc9000036f638 R15: 0000000000000002
      <4> [538.151987] FS:  0000000000000000(0000) GS:ffff888277a00000(0000) knlGS:0000000000000000
      <4> [538.151990] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      <4> [538.151993] CR2: 00007fd48e7052f8 CR3: 0000000005210000 CR4: 00000000003406f0
      <4> [538.151995] Call Trace:
      <4> [538.152106]  bxt_vtd_ggtt_clear_range__cb+0x38/0x40 [i915]
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: NMatthew Auld <matthew.auld@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190909110011.8958-2-chris@chris-wilson.co.uk
      7c465310
    • C
      drm/i915: Perform GGTT restore much earlier during resume · cec5ca08
      Chris Wilson 提交于
      As soon as we re-enable the various functions within the HW, they may go
      off and read data via a GGTT offset. Hence, if we have not yet restored
      the GGTT PTE before then, they may read and even *write* random locations
      in memory.
      
      Detected by DMAR faults during resume.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Cc: Martin Peres <martin.peres@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: NMika Kuoppala <mika.kuoppala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190909110011.8958-4-chris@chris-wilson.co.uk
      cec5ca08
    • M
      drm/i915: cleanup cache-coloring · 33dd8899
      Matthew Auld 提交于
      Try to tidy up the cache-coloring such that we rid the code of any
      mm.color_adjust assumptions, this should hopefully make it more obvious
      in the code when we need to actually use the cache-level as the color,
      and as a bonus should make adding a different color-scheme simpler.
      Signed-off-by: NMatthew Auld <matthew.auld@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190909124052.22900-3-matthew.auld@intel.com
      33dd8899