[Intel-gfx] [PATCH 26/27] drm/i915/selftests: Drop vestigal struct_mutex guards
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Sep 25 12:55:08 UTC 2019
On 25/09/2019 11:01, Chris Wilson wrote:
> We no longer need struct_mutex to serialise request emission, so remove
> it from the gt selftests.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
> .../gpu/drm/i915/gem/selftests/huge_pages.c | 15 +-
> .../drm/i915/gem/selftests/i915_gem_mman.c | 2 -
> .../drm/i915/gem/selftests/i915_gem_phys.c | 2 -
> drivers/gpu/drm/i915/gt/selftest_lrc.c | 148 +++---------------
> .../gpu/drm/i915/gt/selftest_workarounds.c | 11 +-
> drivers/gpu/drm/i915/gt/uc/selftest_guc.c | 4 -
> 6 files changed, 27 insertions(+), 155 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> index e204e653b459..75e717f7bb5a 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/huge_pages.c
> @@ -1633,7 +1633,6 @@ int i915_gem_huge_page_mock_selftests(void)
> mkwrite_device_info(dev_priv)->ppgtt_type = INTEL_PPGTT_FULL;
> mkwrite_device_info(dev_priv)->ppgtt_size = 48;
>
> - mutex_lock(&dev_priv->drm.struct_mutex);
> ppgtt = i915_ppgtt_create(dev_priv);
> if (IS_ERR(ppgtt)) {
> err = PTR_ERR(ppgtt);
> @@ -1659,9 +1658,7 @@ int i915_gem_huge_page_mock_selftests(void)
> i915_vm_put(&ppgtt->vm);
>
> out_unlock:
> - mutex_unlock(&dev_priv->drm.struct_mutex);
> drm_dev_put(&dev_priv->drm);
> -
> return err;
> }
>
> @@ -1677,7 +1674,6 @@ int i915_gem_huge_page_live_selftests(struct drm_i915_private *i915)
> };
> struct drm_file *file;
> struct i915_gem_context *ctx;
> - intel_wakeref_t wakeref;
> int err;
>
> if (!HAS_PPGTT(i915)) {
> @@ -1692,13 +1688,10 @@ int i915_gem_huge_page_live_selftests(struct drm_i915_private *i915)
> if (IS_ERR(file))
> return PTR_ERR(file);
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> ctx = live_context(i915, file);
> if (IS_ERR(ctx)) {
> err = PTR_ERR(ctx);
> - goto out_unlock;
> + goto out_file;
> }
>
> if (rcu_access_pointer(ctx->vm))
> @@ -1706,11 +1699,7 @@ int i915_gem_huge_page_live_selftests(struct drm_i915_private *i915)
>
> err = i915_subtests(tests, ctx);
>
> -out_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> -
> +out_file:
> mock_file_free(i915, file);
> -
> return err;
> }
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> index 1cd25cfd0246..cfa52c525691 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> @@ -669,9 +669,7 @@ static int igt_mmap_offset_exhaustion(void *arg)
> goto out;
> }
>
> - mutex_lock(&i915->drm.struct_mutex);
> err = make_obj_busy(obj);
> - mutex_unlock(&i915->drm.struct_mutex);
> if (err) {
> pr_err("[loop %d] Failed to busy the object\n", loop);
> goto err_obj;
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c
> index 94a15e3f6db8..34932871b3a5 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_phys.c
> @@ -25,9 +25,7 @@ static int mock_phys_object(void *arg)
> goto out;
> }
>
> - mutex_lock(&i915->drm.struct_mutex);
> err = i915_gem_object_attach_phys(obj, PAGE_SIZE);
> - mutex_unlock(&i915->drm.struct_mutex);
> if (err) {
> pr_err("i915_gem_object_attach_phys failed, err=%d\n", err);
> goto out_obj;
> diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c b/drivers/gpu/drm/i915/gt/selftest_lrc.c
> index e33c2f66c683..89affc958d01 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_lrc.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_lrc.c
> @@ -26,17 +26,13 @@ static int live_sanitycheck(void *arg)
> struct i915_gem_context *ctx;
> struct intel_context *ce;
> struct igt_spinner spin;
> - intel_wakeref_t wakeref;
> int err = -ENOMEM;
>
> if (!HAS_LOGICAL_RING_CONTEXTS(i915))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> if (igt_spinner_init(&spin, &i915->gt))
> - goto err_unlock;
> + return -ENOMEM;
>
> ctx = kernel_context(i915);
> if (!ctx)
> @@ -73,9 +69,6 @@ static int live_sanitycheck(void *arg)
> kernel_context_close(ctx);
> err_spin:
> igt_spinner_fini(&spin);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> return err;
> }
>
> @@ -224,7 +217,6 @@ static int live_timeslice_preempt(void *arg)
> {
> struct drm_i915_private *i915 = arg;
> struct drm_i915_gem_object *obj;
> - intel_wakeref_t wakeref;
> struct i915_vma *vma;
> void *vaddr;
> int err = 0;
> @@ -239,14 +231,9 @@ static int live_timeslice_preempt(void *arg)
> * ready task.
> */
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> obj = i915_gem_object_create_internal(i915, PAGE_SIZE);
> - if (IS_ERR(obj)) {
> - err = PTR_ERR(obj);
> - goto err_unlock;
> - }
> + if (IS_ERR(obj))
> + return PTR_ERR(obj);
>
> vma = i915_vma_instance(obj, &i915->ggtt.vm, NULL);
> if (IS_ERR(vma)) {
> @@ -291,10 +278,6 @@ static int live_timeslice_preempt(void *arg)
> i915_gem_object_unpin_map(obj);
> err_obj:
> i915_gem_object_put(obj);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> -
> return err;
> }
>
> @@ -306,7 +289,6 @@ static int live_busywait_preempt(void *arg)
> struct drm_i915_gem_object *obj;
> struct i915_vma *vma;
> enum intel_engine_id id;
> - intel_wakeref_t wakeref;
> int err = -ENOMEM;
> u32 *map;
>
> @@ -315,12 +297,9 @@ static int live_busywait_preempt(void *arg)
> * preempt the busywaits used to synchronise between rings.
> */
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> ctx_hi = kernel_context(i915);
> if (!ctx_hi)
> - goto err_unlock;
> + return -ENOMEM;
> ctx_hi->sched.priority =
> I915_USER_PRIORITY(I915_CONTEXT_MAX_USER_PRIORITY);
>
> @@ -474,9 +453,6 @@ static int live_busywait_preempt(void *arg)
> kernel_context_close(ctx_lo);
> err_ctx_hi:
> kernel_context_close(ctx_hi);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> return err;
> }
>
> @@ -505,7 +481,6 @@ static int live_preempt(void *arg)
> struct igt_spinner spin_hi, spin_lo;
> struct intel_engine_cs *engine;
> enum intel_engine_id id;
> - intel_wakeref_t wakeref;
> int err = -ENOMEM;
>
> if (!HAS_LOGICAL_RING_PREEMPTION(i915))
> @@ -514,11 +489,8 @@ static int live_preempt(void *arg)
> if (!(i915->caps.scheduler & I915_SCHEDULER_CAP_PREEMPTION))
> pr_err("Logical preemption supported, but not exposed\n");
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> if (igt_spinner_init(&spin_hi, &i915->gt))
> - goto err_unlock;
> + return -ENOMEM;
>
> if (igt_spinner_init(&spin_lo, &i915->gt))
> goto err_spin_hi;
> @@ -598,9 +570,6 @@ static int live_preempt(void *arg)
> igt_spinner_fini(&spin_lo);
> err_spin_hi:
> igt_spinner_fini(&spin_hi);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> return err;
> }
>
> @@ -612,17 +581,13 @@ static int live_late_preempt(void *arg)
> struct intel_engine_cs *engine;
> struct i915_sched_attr attr = {};
> enum intel_engine_id id;
> - intel_wakeref_t wakeref;
> int err = -ENOMEM;
>
> if (!HAS_LOGICAL_RING_PREEMPTION(i915))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> if (igt_spinner_init(&spin_hi, &i915->gt))
> - goto err_unlock;
> + return -ENOMEM;
>
> if (igt_spinner_init(&spin_lo, &i915->gt))
> goto err_spin_hi;
> @@ -704,9 +669,6 @@ static int live_late_preempt(void *arg)
> igt_spinner_fini(&spin_lo);
> err_spin_hi:
> igt_spinner_fini(&spin_hi);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> return err;
>
> err_wedged:
> @@ -751,7 +713,6 @@ static int live_nopreempt(void *arg)
> struct intel_engine_cs *engine;
> struct preempt_client a, b;
> enum intel_engine_id id;
> - intel_wakeref_t wakeref;
> int err = -ENOMEM;
>
> /*
> @@ -762,11 +723,8 @@ static int live_nopreempt(void *arg)
> if (!HAS_LOGICAL_RING_PREEMPTION(i915))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> if (preempt_client_init(i915, &a))
> - goto err_unlock;
> + return -ENOMEM;
> if (preempt_client_init(i915, &b))
> goto err_client_a;
> b.ctx->sched.priority = I915_USER_PRIORITY(I915_PRIORITY_MAX);
> @@ -840,9 +798,6 @@ static int live_nopreempt(void *arg)
> preempt_client_fini(&b);
> err_client_a:
> preempt_client_fini(&a);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> return err;
>
> err_wedged:
> @@ -862,7 +817,6 @@ static int live_suppress_self_preempt(void *arg)
> };
> struct preempt_client a, b;
> enum intel_engine_id id;
> - intel_wakeref_t wakeref;
> int err = -ENOMEM;
>
> /*
> @@ -881,11 +835,8 @@ static int live_suppress_self_preempt(void *arg)
> if (intel_vgpu_active(i915))
> return 0; /* GVT forces single port & request submission */
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> if (preempt_client_init(i915, &a))
> - goto err_unlock;
> + return -ENOMEM;
> if (preempt_client_init(i915, &b))
> goto err_client_a;
>
> @@ -966,9 +917,6 @@ static int live_suppress_self_preempt(void *arg)
> preempt_client_fini(&b);
> err_client_a:
> preempt_client_fini(&a);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> return err;
>
> err_wedged:
> @@ -1038,7 +986,6 @@ static int live_suppress_wait_preempt(void *arg)
> struct preempt_client client[4];
> struct intel_engine_cs *engine;
> enum intel_engine_id id;
> - intel_wakeref_t wakeref;
> int err = -ENOMEM;
> int i;
>
> @@ -1051,11 +998,8 @@ static int live_suppress_wait_preempt(void *arg)
> if (!HAS_LOGICAL_RING_PREEMPTION(i915))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> if (preempt_client_init(i915, &client[0])) /* ELSP[0] */
> - goto err_unlock;
> + return -ENOMEM;
> if (preempt_client_init(i915, &client[1])) /* ELSP[1] */
> goto err_client_0;
> if (preempt_client_init(i915, &client[2])) /* head of queue */
> @@ -1141,9 +1085,6 @@ static int live_suppress_wait_preempt(void *arg)
> preempt_client_fini(&client[1]);
> err_client_0:
> preempt_client_fini(&client[0]);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> return err;
>
> err_wedged:
> @@ -1160,7 +1101,6 @@ static int live_chain_preempt(void *arg)
> struct intel_engine_cs *engine;
> struct preempt_client hi, lo;
> enum intel_engine_id id;
> - intel_wakeref_t wakeref;
> int err = -ENOMEM;
>
> /*
> @@ -1172,11 +1112,8 @@ static int live_chain_preempt(void *arg)
> if (!HAS_LOGICAL_RING_PREEMPTION(i915))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> if (preempt_client_init(i915, &hi))
> - goto err_unlock;
> + return -ENOMEM;
>
> if (preempt_client_init(i915, &lo))
> goto err_client_hi;
> @@ -1287,9 +1224,6 @@ static int live_chain_preempt(void *arg)
> preempt_client_fini(&lo);
> err_client_hi:
> preempt_client_fini(&hi);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> return err;
>
> err_wedged:
> @@ -1307,7 +1241,6 @@ static int live_preempt_hang(void *arg)
> struct igt_spinner spin_hi, spin_lo;
> struct intel_engine_cs *engine;
> enum intel_engine_id id;
> - intel_wakeref_t wakeref;
> int err = -ENOMEM;
>
> if (!HAS_LOGICAL_RING_PREEMPTION(i915))
> @@ -1316,11 +1249,8 @@ static int live_preempt_hang(void *arg)
> if (!intel_has_reset_engine(i915))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&i915->runtime_pm);
> -
> if (igt_spinner_init(&spin_hi, &i915->gt))
> - goto err_unlock;
> + return -ENOMEM;
>
> if (igt_spinner_init(&spin_lo, &i915->gt))
> goto err_spin_hi;
> @@ -1412,9 +1342,6 @@ static int live_preempt_hang(void *arg)
> igt_spinner_fini(&spin_lo);
> err_spin_hi:
> igt_spinner_fini(&spin_hi);
> -err_unlock:
> - intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> - mutex_unlock(&i915->drm.struct_mutex);
> return err;
> }
>
> @@ -1504,11 +1431,9 @@ static int smoke_crescendo_thread(void *arg)
> struct i915_gem_context *ctx = smoke_context(smoke);
> int err;
>
> - mutex_lock(&smoke->i915->drm.struct_mutex);
> err = smoke_submit(smoke,
> ctx, count % I915_PRIORITY_MAX,
> smoke->batch);
> - mutex_unlock(&smoke->i915->drm.struct_mutex);
> if (err)
> return err;
>
> @@ -1529,8 +1454,6 @@ static int smoke_crescendo(struct preempt_smoke *smoke, unsigned int flags)
> unsigned long count;
> int err = 0;
>
> - mutex_unlock(&smoke->i915->drm.struct_mutex);
> -
> for_each_engine(engine, smoke->i915, id) {
> arg[id] = *smoke;
> arg[id].engine = engine;
> @@ -1563,8 +1486,6 @@ static int smoke_crescendo(struct preempt_smoke *smoke, unsigned int flags)
> put_task_struct(tsk[id]);
> }
>
> - mutex_lock(&smoke->i915->drm.struct_mutex);
> -
> pr_info("Submitted %lu crescendo:%x requests across %d engines and %d contexts\n",
> count, flags,
> RUNTIME_INFO(smoke->i915)->num_engines, smoke->ncontext);
> @@ -1607,7 +1528,6 @@ static int live_preempt_smoke(void *arg)
> .ncontext = 1024,
> };
> const unsigned int phase[] = { 0, BATCH };
> - intel_wakeref_t wakeref;
> struct igt_live_test t;
> int err = -ENOMEM;
> u32 *cs;
> @@ -1622,13 +1542,10 @@ static int live_preempt_smoke(void *arg)
> if (!smoke.contexts)
> return -ENOMEM;
>
> - mutex_lock(&smoke.i915->drm.struct_mutex);
> - wakeref = intel_runtime_pm_get(&smoke.i915->runtime_pm);
> -
> smoke.batch = i915_gem_object_create_internal(smoke.i915, PAGE_SIZE);
> if (IS_ERR(smoke.batch)) {
> err = PTR_ERR(smoke.batch);
> - goto err_unlock;
> + goto err_free;
> }
>
> cs = i915_gem_object_pin_map(smoke.batch, I915_MAP_WB);
> @@ -1675,9 +1592,7 @@ static int live_preempt_smoke(void *arg)
>
> err_batch:
> i915_gem_object_put(smoke.batch);
> -err_unlock:
> - intel_runtime_pm_put(&smoke.i915->runtime_pm, wakeref);
> - mutex_unlock(&smoke.i915->drm.struct_mutex);
> +err_free:
> kfree(smoke.contexts);
>
> return err;
> @@ -1815,19 +1730,17 @@ static int live_virtual_engine(void *arg)
> struct intel_gt *gt = &i915->gt;
> enum intel_engine_id id;
> unsigned int class, inst;
> - int err = -ENODEV;
> + int err;
>
> if (USES_GUC_SUBMISSION(i915))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> -
> for_each_engine(engine, i915, id) {
> err = nop_virtual_engine(i915, &engine, 1, 1, 0);
> if (err) {
> pr_err("Failed to wrap engine %s: err=%d\n",
> engine->name, err);
> - goto out_unlock;
> + return err;
> }
> }
>
> @@ -1848,17 +1761,15 @@ static int live_virtual_engine(void *arg)
> err = nop_virtual_engine(i915, siblings, nsibling,
> n, 0);
> if (err)
> - goto out_unlock;
> + return err;
> }
>
> err = nop_virtual_engine(i915, siblings, nsibling, n, CHAIN);
> if (err)
> - goto out_unlock;
> + return err;
> }
>
> -out_unlock:
> - mutex_unlock(&i915->drm.struct_mutex);
> - return err;
> + return 0;
> }
>
> static int mask_virtual_engine(struct drm_i915_private *i915,
> @@ -1937,9 +1848,6 @@ static int mask_virtual_engine(struct drm_i915_private *i915,
> }
>
> err = igt_live_test_end(&t);
> - if (err)
> - goto out;
> -
> out:
> if (igt_flush_test(i915))
> err = -EIO;
> @@ -1962,13 +1870,11 @@ static int live_virtual_mask(void *arg)
> struct intel_engine_cs *siblings[MAX_ENGINE_INSTANCE + 1];
> struct intel_gt *gt = &i915->gt;
> unsigned int class, inst;
> - int err = 0;
> + int err;
>
> if (USES_GUC_SUBMISSION(i915))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> -
> for (class = 0; class <= MAX_ENGINE_CLASS; class++) {
> unsigned int nsibling;
>
> @@ -1984,12 +1890,10 @@ static int live_virtual_mask(void *arg)
>
> err = mask_virtual_engine(i915, siblings, nsibling);
> if (err)
> - goto out_unlock;
> + return err;
> }
>
> -out_unlock:
> - mutex_unlock(&i915->drm.struct_mutex);
> - return err;
> + return 0;
> }
>
> static int bond_virtual_engine(struct drm_i915_private *i915,
> @@ -2140,13 +2044,11 @@ static int live_virtual_bond(void *arg)
> struct intel_engine_cs *siblings[MAX_ENGINE_INSTANCE + 1];
> struct intel_gt *gt = &i915->gt;
> unsigned int class, inst;
> - int err = 0;
> + int err;
>
> if (USES_GUC_SUBMISSION(i915))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> -
> for (class = 0; class <= MAX_ENGINE_CLASS; class++) {
> const struct phase *p;
> int nsibling;
> @@ -2169,14 +2071,12 @@ static int live_virtual_bond(void *arg)
> if (err) {
> pr_err("%s(%s): failed class=%d, nsibling=%d, err=%d\n",
> __func__, p->name, class, nsibling, err);
> - goto out_unlock;
> + return err;
> }
> }
> }
>
> -out_unlock:
> - mutex_unlock(&i915->drm.struct_mutex);
> - return err;
> + return 0;
> }
>
> int intel_execlists_live_selftests(struct drm_i915_private *i915)
> diff --git a/drivers/gpu/drm/i915/gt/selftest_workarounds.c b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
> index ed44333d9e20..a10990b1a72c 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_workarounds.c
> @@ -704,9 +704,7 @@ static int live_dirty_whitelist(void *arg)
>
> wakeref = intel_runtime_pm_get(&i915->runtime_pm);
>
> - mutex_unlock(&i915->drm.struct_mutex);
> file = mock_file(i915);
> - mutex_lock(&i915->drm.struct_mutex);
> if (IS_ERR(file)) {
> err = PTR_ERR(file);
> goto out_rpm;
> @@ -728,9 +726,7 @@ static int live_dirty_whitelist(void *arg)
> }
>
> out_file:
> - mutex_unlock(&i915->drm.struct_mutex);
> mock_file_free(i915, file);
> - mutex_lock(&i915->drm.struct_mutex);
> out_rpm:
> intel_runtime_pm_put(&i915->runtime_pm, wakeref);
> return err;
> @@ -1264,14 +1260,9 @@ int intel_workarounds_live_selftests(struct drm_i915_private *i915)
> SUBTEST(live_gpu_reset_workarounds),
> SUBTEST(live_engine_reset_workarounds),
> };
> - int err;
>
> if (intel_gt_is_wedged(&i915->gt))
> return 0;
>
> - mutex_lock(&i915->drm.struct_mutex);
> - err = i915_subtests(tests, i915);
> - mutex_unlock(&i915->drm.struct_mutex);
> -
> - return err;
> + return i915_subtests(tests, i915);
> }
> diff --git a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
> index bba0eafe1cdb..f927f851aadf 100644
> --- a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
> @@ -116,7 +116,6 @@ static int igt_guc_clients(void *args)
> int err = 0;
>
> GEM_BUG_ON(!HAS_GT_UC(dev_priv));
> - mutex_lock(&dev_priv->drm.struct_mutex);
> wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
>
> guc = &dev_priv->gt.uc.guc;
> @@ -190,7 +189,6 @@ static int igt_guc_clients(void *args)
> guc_clients_enable(guc);
> unlock:
> intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref);
> - mutex_unlock(&dev_priv->drm.struct_mutex);
> return err;
> }
>
> @@ -208,7 +206,6 @@ static int igt_guc_doorbells(void *arg)
> u16 db_id;
>
> GEM_BUG_ON(!HAS_GT_UC(dev_priv));
> - mutex_lock(&dev_priv->drm.struct_mutex);
> wakeref = intel_runtime_pm_get(&dev_priv->runtime_pm);
>
> guc = &dev_priv->gt.uc.guc;
> @@ -299,7 +296,6 @@ static int igt_guc_doorbells(void *arg)
> }
> unlock:
> intel_runtime_pm_put(&dev_priv->runtime_pm, wakeref);
> - mutex_unlock(&dev_priv->drm.struct_mutex);
> return err;
> }
>
>
Too boring to read in detail. Eyeballs okay and in asserts, compilers
and static analysers we trust. :)
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list