All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Wilson <chris@chris-wilson.co.uk>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH 20/20] drm/i915: Drop struct_mutex from around GEM initialisation
Date: Fri,  4 Oct 2019 14:40:15 +0100	[thread overview]
Message-ID: <20191004134015.13204-21-chris@chris-wilson.co.uk> (raw)
In-Reply-To: <20191004134015.13204-1-chris@chris-wilson.co.uk>

We no longer need to placate lockdep by holding struct_mutex for our
initialisation, so don't.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_pm.c           | 2 --
 drivers/gpu/drm/i915/i915_gem.c                  | 9 ---------
 drivers/gpu/drm/i915/selftests/mock_gem_device.c | 7 -------
 3 files changed, 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
index 7c316d4633db..7987b54fb1f5 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
@@ -174,7 +174,6 @@ void i915_gem_resume(struct drm_i915_private *i915)
 {
 	GEM_TRACE("\n");
 
-	mutex_lock(&i915->drm.struct_mutex);
 	intel_uncore_forcewake_get(&i915->uncore, FORCEWAKE_ALL);
 
 	if (intel_gt_init_hw(&i915->gt))
@@ -198,7 +197,6 @@ void i915_gem_resume(struct drm_i915_private *i915)
 
 out_unlock:
 	intel_uncore_forcewake_put(&i915->uncore, FORCEWAKE_ALL);
-	mutex_unlock(&i915->drm.struct_mutex);
 	return;
 
 err_wedged:
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index f6db415985d5..0ddbd3a5fb8d 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1249,7 +1249,6 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 	 * we hold the forcewake during initialisation these problems
 	 * just magically go away.
 	 */
-	mutex_lock(&dev_priv->drm.struct_mutex);
 	intel_uncore_forcewake_get(&dev_priv->uncore, FORCEWAKE_ALL);
 
 	ret = i915_init_ggtt(dev_priv);
@@ -1319,7 +1318,6 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 		goto err_gt;
 
 	intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
-	mutex_unlock(&dev_priv->drm.struct_mutex);
 
 	return 0;
 
@@ -1330,15 +1328,11 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 	 * driver doesn't explode during runtime.
 	 */
 err_gt:
-	mutex_unlock(&dev_priv->drm.struct_mutex);
-
 	intel_gt_set_wedged_on_init(&dev_priv->gt);
 	i915_gem_suspend(dev_priv);
 	i915_gem_suspend_late(dev_priv);
 
 	i915_gem_drain_workqueue(dev_priv);
-
-	mutex_lock(&dev_priv->drm.struct_mutex);
 err_init_hw:
 	intel_uc_fini_hw(&dev_priv->gt.uc);
 err_uc_init:
@@ -1353,7 +1347,6 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 	intel_gt_driver_release(&dev_priv->gt);
 err_unlock:
 	intel_uncore_forcewake_put(&dev_priv->uncore, FORCEWAKE_ALL);
-	mutex_unlock(&dev_priv->drm.struct_mutex);
 
 	if (ret != -EIO) {
 		intel_uc_cleanup_firmwares(&dev_priv->gt.uc);
@@ -1406,10 +1399,8 @@ void i915_gem_driver_remove(struct drm_i915_private *dev_priv)
 	/* Flush any outstanding unpin_work. */
 	i915_gem_drain_workqueue(dev_priv);
 
-	mutex_lock(&dev_priv->drm.struct_mutex);
 	intel_uc_fini_hw(&dev_priv->gt.uc);
 	intel_uc_fini(&dev_priv->gt.uc);
-	mutex_unlock(&dev_priv->drm.struct_mutex);
 
 	i915_gem_drain_freed_objects(dev_priv);
 }
diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
index 335f37ba98de..70a7026db08d 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
@@ -68,10 +68,7 @@ static void mock_device_release(struct drm_device *dev)
 	drain_workqueue(i915->wq);
 	i915_gem_drain_freed_objects(i915);
 
-	mutex_lock(&i915->drm.struct_mutex);
 	mock_fini_ggtt(&i915->ggtt);
-	mutex_unlock(&i915->drm.struct_mutex);
-
 	destroy_workqueue(i915->wq);
 
 	i915_gemfs_fini(i915);
@@ -179,8 +176,6 @@ struct drm_i915_private *mock_gem_device(void)
 
 	intel_timelines_init(i915);
 
-	mutex_lock(&i915->drm.struct_mutex);
-
 	mock_init_ggtt(i915, &i915->ggtt);
 
 	mkwrite_device_info(i915)->engine_mask = BIT(0);
@@ -197,7 +192,6 @@ struct drm_i915_private *mock_gem_device(void)
 		goto err_context;
 
 	intel_engines_driver_register(i915);
-	mutex_unlock(&i915->drm.struct_mutex);
 
 	WARN_ON(i915_gemfs_init(i915));
 
@@ -208,7 +202,6 @@ struct drm_i915_private *mock_gem_device(void)
 err_engine:
 	mock_engine_free(i915->engine[RCS0]);
 err_unlock:
-	mutex_unlock(&i915->drm.struct_mutex);
 	intel_timelines_fini(i915);
 	destroy_workqueue(i915->wq);
 err_drv:
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2019-10-04 13:40 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-04 13:39 struct_mutex, last round? Chris Wilson
2019-10-04 13:39 ` [PATCH 01/20] drm/i915: Only track bound elements of the GTT Chris Wilson
2019-10-04 13:39 ` [PATCH 02/20] drm/i915: Mark up address spaces that may need to allocate Chris Wilson
2019-10-04 13:39 ` [PATCH 03/20] drm/i915: Pull i915_vma_pin under the vm->mutex Chris Wilson
2019-10-18  8:44   ` Daniel Vetter
2019-10-18  8:51     ` Daniel Vetter
2019-10-04 13:39 ` [PATCH 04/20] drm/i915: Push the i915_active.retire into a worker Chris Wilson
2019-10-04 13:40 ` [PATCH 05/20] drm/i915: Coordinate i915_active with its own mutex Chris Wilson
2019-10-04 13:40 ` [PATCH 06/20] drm/i915: Move idle barrier cleanup into engine-pm Chris Wilson
2019-10-04 13:40 ` [PATCH 07/20] drm/i915: Drop struct_mutex from around i915_retire_requests() Chris Wilson
2019-10-04 13:40 ` [PATCH 08/20] drm/i915: Remove the GEM idle worker Chris Wilson
2019-10-04 13:40 ` [PATCH 09/20] drm/i915: Merge wait_for_timelines with retire_request Chris Wilson
2019-10-04 13:40 ` [PATCH 10/20] drm/i915/gem: Retire directly for mmap-offset shrinking Chris Wilson
2019-10-04 13:40 ` [PATCH 11/20] drm/i915: Move request runtime management onto gt Chris Wilson
2019-10-04 13:40 ` [PATCH 12/20] drm/i915: Move global activity tracking from GEM to GT Chris Wilson
2019-10-04 13:40 ` [PATCH 13/20] drm/i915: Remove logical HW ID Chris Wilson
2019-10-04 13:40 ` [PATCH 14/20] drm/i915: Move context management under GEM Chris Wilson
2019-10-04 13:46   ` Tvrtko Ursulin
2019-10-04 13:40 ` [PATCH 15/20] drm/i915/overlay: Drop struct_mutex guard Chris Wilson
2019-10-04 13:40 ` [PATCH 16/20] drm/i915: Drop struct_mutex guard from debugfs/framebuffer_info Chris Wilson
2019-10-04 13:40 ` [PATCH 17/20] drm/i915: Remove struct_mutex guard for debugfs/opregion Chris Wilson
2019-10-04 13:40 ` [PATCH 18/20] drm/i915: Drop struct_mutex from suspend state save/restore Chris Wilson
2019-10-04 13:40 ` [PATCH 19/20] drm/i915/selftests: Drop vestigal struct_mutex guards Chris Wilson
2019-10-04 13:40 ` Chris Wilson [this message]
2019-10-04 14:14 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/20] drm/i915: Only track bound elements of the GTT Patchwork
2019-10-04 14:49 ` ✗ Fi.CI.BAT: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191004134015.13204-21-chris@chris-wilson.co.uk \
    --to=chris@chris-wilson.co.uk \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.