1. 11 11月, 2017 3 次提交
    • C
      drm/i915: Force the switch to the i915->kernel_context · ae6c4574
      Chris Wilson 提交于
      In the next few patches, we will have a hard requirement that we emit a
      context-switch to the perma-pinned i915->kernel_context (so that we can
      save the HW state using that context-switch). As the first context
      itself may be classed as a kernel context, we want to be explicit in our
      comparison. For an extra-layer of finesse, we can check the last
      unretired context on the engine; as well as the last retired context
      when idle.
      
      v2: verbose verbosity
      v3: Always force the switch, even when the engine is idle, and update
      the assert that this happens before suspend.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> #v1
      Reviewed-by: NMika Kuoppala <mika.kuoppala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171110142634.10551-2-chris@chris-wilson.co.uk
      ae6c4574
    • T
      drm/i915: Define an engine class enum for the uABI · 1803fcbc
      Tvrtko Ursulin 提交于
      We want to be able to report back to userspace details about an engine's
      class, and in return for userspace to be able to request actions
      regarding certain classes of engines. To isolate the uABI from any
      variations between hw generations, we define an abstract class for the
      engines and internally map onto the hw.
      
      v2: Remove MAX from the uABI; keep it internal if we need it, but don't
      let userspace make the mistake of using it themselves.
      v3: s/OTHER/INVALID/
        The use of OTHER is ill-defined, so remove it from the uABI as any
        future new type of engine can define a class to suit it. But keep a
        reserved value for an invalid class, so that we can always
        unambiguously express when something doesn't belong to the
        classification.
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
      Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> #v2
      Reviewed-by: NLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171110142634.10551-1-chris@chris-wilson.co.uk
      1803fcbc
    • C
      drm/i915/selftests: Initialise mock_i915->mm.obj_lock · 9511ce1c
      Chris Wilson 提交于
      lockdep spotted that the mock tests were using the i915->mm.obj_lock
      without first initialiasing it:
      
      >[ 1303.217043] [IGT] drv_selftest: starting subtest mock_objects
      <4>[ 1303.240898] Setting dangerous option mock_selftests - tainting kernel
      <6>[ 1303.253665] i915: Performing mock selftests with st_random_seed=0xd87ea6c6 st_timeout=1000
      <4>[ 1303.254812] INFO: trying to register non-static key.
      <4>[ 1303.254816] the code is fine but needs lockdep annotation.
      <4>[ 1303.254818] turning off the locking correctness validator.
      <4>[ 1303.254820] CPU: 4 PID: 13112 Comm: drv_selftest Tainted: G     U  W       4.14.0-rc8-CI-Patchwork_7058+ #1
      <4>[ 1303.254823] Hardware name: MSI MS-7924/Z97M-G43(MS-7924), BIOS V1.12 02/15/2016
      <4>[ 1303.254825] Call Trace:
      <4>[ 1303.254829]  dump_stack+0x68/0x9f
      <4>[ 1303.254832]  register_lock_class+0x3fd/0x580
      <4>[ 1303.254835]  ? ___slab_alloc.constprop.29+0x157/0x3d0
      <4>[ 1303.254837]  ? ___slab_alloc.constprop.29+0x157/0x3d0
      <4>[ 1303.254840]  ? sg_kmalloc+0x1e/0x50
      <4>[ 1303.254842]  ? debug_smp_processor_id+0x17/0x20
      <4>[ 1303.254845]  __lock_acquire+0xa4/0x1b00
      <4>[ 1303.254884]  ? __i915_gem_object_set_pages+0x116/0x1f0 [i915]
      <4>[ 1303.254887]  ? __this_cpu_preempt_check+0x13/0x20
      <4>[ 1303.254889]  ? sg_kmalloc+0x1e/0x50
      <4>[ 1303.254891]  lock_acquire+0xb0/0x200
      <4>[ 1303.254893]  ? lock_acquire+0xb0/0x200
      <4>[ 1303.254917]  ? __i915_gem_object_set_pages+0x116/0x1f0 [i915]
      <4>[ 1303.254920]  _raw_spin_lock+0x32/0x50
      <4>[ 1303.254944]  ? __i915_gem_object_set_pages+0x116/0x1f0 [i915]
      <4>[ 1303.254967]  __i915_gem_object_set_pages+0x116/0x1f0 [i915]
      <4>[ 1303.254991]  i915_gem_object_get_pages_phys+0x286/0x2b0 [i915]
      <4>[ 1303.255015]  ____i915_gem_object_get_pages+0x20/0x60 [i915]
      <4>[ 1303.255039]  i915_gem_object_attach_phys+0x137/0x1a0 [i915]
      <4>[ 1303.255063]  igt_phys_object+0x45/0x120 [i915]
      <4>[ 1303.255094]  __i915_subtests+0x40/0xd0 [i915]
      <4>[ 1303.255099]  ? work_on_cpu_safe+0x60/0x60
      <4>[ 1303.255131]  i915_gem_object_mock_selftests+0x34/0x50 [i915]
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Matthew Auld <matthew.william.auld@gmail.com>
      Cc: Mika Kuoppala <mika.kuoppala@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171110151919.18451-1-chris@chris-wilson.co.ukReviewed-by: NMatthew Auld <matthew.william.auld@gmail.com>
      Reviewed-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      9511ce1c
  2. 10 11月, 2017 20 次提交
  3. 09 11月, 2017 7 次提交
  4. 08 11月, 2017 10 次提交