1. 04 Jul, 2019 2 commits
    • Chris Wilson's avatar
      drm/i915: Move the renderstate setup under gt/ · 2006058e
      Chris Wilson authored
      The render state is used to initialise the default RCS context, and only
      used during early setup from within the gt code. As such, it makes a
      good candidate for placing within gt/, even if it is not yet entirely
      clean of our GEM heritage.
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190704091925.7391-1-chris@chris-wilson.co.uk
      2006058e
    • Chris Wilson's avatar
      drm/i915/gtt: Defer the free for alloc error paths · 06861089
      Chris Wilson authored
      If we hit an error while allocating the page tables, we have to unwind
      the incomplete updates, and wish to free the unused pd. However, we are
      not allowed to be hoding the spinlock at that point, and so must use the
      later free to defer it until after we drop the lock.
      
      <3> [414.363795] BUG: sleeping function called from invalid context at drivers/gpu/drm/i915/i915_gem_gtt.c:472
      <3> [414.364167] in_atomic(): 1, irqs_disabled(): 0, pid: 3905, name: i915_selftest
      <4> [414.364406] 3 locks held by i915_selftest/3905:
      <4> [414.364408]  #0: 0000000034fe8aa8 (&dev->mutex){....}, at: device_driver_attach+0x18/0x50
      <4> [414.364415]  #1: 000000006bd8a560 (&dev->struct_mutex){+.+.}, at: igt_ctx_exec+0xb7/0x410 [i915]
      <4> [414.364476]  #2: 000000003dfdc766 (&(&pd->lock)->rlock){+.+.}, at: gen8_ppgtt_alloc_pdp+0x448/0x540 [i915]
      <3> [414.364529] Preemption disabled at:
      <4> [414.364530] [<0000000000000000>] 0x0
      <4> [414.364696] CPU: 0 PID: 3905 Comm: i915_selftest Tainted: G     U            5.2.0-rc7-CI-CI_DRM_6403+ #1
      <4> [414.364698] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.10.1-0-g8891697-prebuilt.qemu-project.org 04/01/2014
      <4> [414.364699] Call Trace:
      <4> [414.364704]  dump_stack+0x67/0x9b
      <4> [414.364708]  ___might_sleep+0x167/0x250
      <4> [414.364777]  vm_free_page+0x24/0xc0 [i915]
      <4> [414.364852]  free_pd+0xf/0x20 [i915]
      <4> [414.364897]  gen8_ppgtt_alloc_pdp+0x489/0x540 [i915]
      <4> [414.364946]  gen8_ppgtt_alloc_4lvl+0x8e/0x2e0 [i915]
      <4> [414.364992]  ppgtt_bind_vma+0x2e/0x60 [i915]
      <4> [414.365039]  i915_vma_bind+0xe8/0x2c0 [i915]
      <4> [414.365088]  __i915_vma_do_pin+0xa1/0xd20 [i915]
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111050
      Fixes: 1d1b5490 ("drm/i915/gtt: Replace struct_mutex serialisation for allocation")
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Reviewed-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190703171913.16585-3-chris@chris-wilson.co.uk
      06861089
  2. 03 Jul, 2019 11 commits
  3. 02 Jul, 2019 7 commits
  4. 01 Jul, 2019 20 commits