[PATCH 48/49] gfp-switch-k

Chris Wilson chris at chris-wilson.co.uk
Sat Jun 30 20:33:32 UTC 2018


---
 drivers/gpu/drm/i915/i915_gem.c                   | 10 +++++-----
 drivers/gpu/drm/i915/i915_gem_context.c           |  9 ++++-----
 drivers/gpu/drm/i915/i915_gem_context.h           |  2 +-
 drivers/gpu/drm/i915/i915_gem_evict.c             |  2 +-
 drivers/gpu/drm/i915/selftests/i915_gem_context.c |  4 ++--
 drivers/gpu/drm/i915/selftests/igt_flush_test.c   |  2 +-
 6 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 120b51b7137d..001c0fcbee49 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3133,7 +3133,7 @@ i915_gem_idle_work_handler(struct work_struct *work)
 	 * idle that implies a round trip through the retire worker).
 	 */
 	mutex_lock(&dev_priv->drm.struct_mutex);
-	i915_gem_switch_to_kernel_context(dev_priv);
+	i915_gem_switch_to_kernel_context(dev_priv, GFP_KERNEL);
 	mutex_unlock(&dev_priv->drm.struct_mutex);
 
 	GEM_TRACE("active_requests=%d (after switch-to-kernel-context)\n",
@@ -4603,7 +4603,7 @@ int i915_gem_suspend(struct drm_i915_private *i915)
 	 * not rely on its state.
 	 */
 	if (!i915_terminally_wedged(&i915->gpu_error)) {
-		ret = i915_gem_switch_to_kernel_context(i915);
+		ret = i915_gem_switch_to_kernel_context(i915, GFP_KERNEL);
 		if (ret)
 			goto err_unlock;
 
@@ -4711,7 +4711,7 @@ void i915_gem_resume(struct drm_i915_private *i915)
 	intel_uc_resume(i915);
 
 	/* Always reload a context for powersaving. */
-	if (i915_gem_switch_to_kernel_context(i915))
+	if (i915_gem_switch_to_kernel_context(i915, GFP_KERNEL))
 		goto err_wedged;
 
 out_unlock:
@@ -4912,7 +4912,7 @@ static int __intel_engines_record_defaults(struct drm_i915_private *i915)
 			goto err_active;
 	}
 
-	err = i915_gem_switch_to_kernel_context(i915);
+	err = i915_gem_switch_to_kernel_context(i915, GFP_KERNEL);
 	if (err)
 		goto err_active;
 
@@ -4980,7 +4980,7 @@ static int __intel_engines_record_defaults(struct drm_i915_private *i915)
 	 * request, ensure we are pointing at the kernel context and
 	 * then remove it.
 	 */
-	if (WARN_ON(i915_gem_switch_to_kernel_context(i915)))
+	if (WARN_ON(i915_gem_switch_to_kernel_context(i915, GFP_KERNEL)))
 		goto out_ctx;
 
 	if (WARN_ON(i915_gem_wait_for_idle(i915, I915_WAIT_LOCKED)))
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
index d7a6d6492211..37f20aae5bb5 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -678,7 +678,8 @@ static bool engine_has_kernel_context_barrier(struct intel_engine_cs *engine)
 	return intel_engine_has_kernel_context(engine);
 }
 
-int i915_gem_switch_to_kernel_context(struct drm_i915_private *i915)
+int i915_gem_switch_to_kernel_context(struct drm_i915_private *i915,
+				      gfp_t gfp)
 {
 	struct intel_engine_cs *engine;
 	enum intel_engine_id id;
@@ -700,9 +701,7 @@ int i915_gem_switch_to_kernel_context(struct drm_i915_private *i915)
 
 		GEM_TRACE("emit barrier on %s\n", engine->name);
 
-		rq = i915_request_alloc(engine,
-				       	i915->kernel_context,
-				       	GFP_KERNEL);
+		rq = i915_request_alloc(engine, i915->kernel_context, gfp);
 		if (IS_ERR(rq))
 			return PTR_ERR(rq);
 
@@ -723,7 +722,7 @@ int i915_gem_switch_to_kernel_context(struct drm_i915_private *i915)
 				  prev->fence.seqno);
 			i915_sw_fence_await_sw_fence_gfp(&rq->submit,
 							 &prev->submit,
-							 I915_FENCE_GFP);
+							 gfp);
 			i915_timeline_sync_set(rq->timeline, &prev->fence);
 		}
 
diff --git a/drivers/gpu/drm/i915/i915_gem_context.h b/drivers/gpu/drm/i915/i915_gem_context.h
index 343d228a1eff..4d8c3bba5e64 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.h
+++ b/drivers/gpu/drm/i915/i915_gem_context.h
@@ -332,7 +332,7 @@ int i915_gem_context_open(struct drm_i915_private *i915,
 void i915_gem_context_close(struct drm_file *file);
 
 int i915_switch_context(struct i915_request *rq);
-int i915_gem_switch_to_kernel_context(struct drm_i915_private *dev_priv);
+int i915_gem_switch_to_kernel_context(struct drm_i915_private *i915, gfp_t gfp);
 
 void i915_gem_context_release(struct kref *ctx_ref);
 struct i915_gem_context *
diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c
index 98635af0c9f7..104500ad75b7 100644
--- a/drivers/gpu/drm/i915/i915_gem_evict.c
+++ b/drivers/gpu/drm/i915/i915_gem_evict.c
@@ -63,7 +63,7 @@ static int ggtt_flush(struct drm_i915_private *i915)
 	 * the hopes that we can then remove contexts and the like only
 	 * bound by their active reference.
 	 */
-	err = i915_gem_switch_to_kernel_context(i915);
+	err = i915_gem_switch_to_kernel_context(i915, GFP_KERNEL);
 	if (err)
 		return err;
 
diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
index a4991a88134a..1269b4a3dacb 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
@@ -690,7 +690,7 @@ static int __igt_switch_to_kernel_context(struct drm_i915_private *i915,
 		i915_request_add(rq);
 	}
 
-	err = i915_gem_switch_to_kernel_context(i915);
+	err = i915_gem_switch_to_kernel_context(i915, GFP_KERNEL);
 	if (err)
 		return err;
 
@@ -715,7 +715,7 @@ static int __igt_switch_to_kernel_context(struct drm_i915_private *i915,
 		}
 	}
 
-	err = i915_gem_switch_to_kernel_context(i915);
+	err = i915_gem_switch_to_kernel_context(i915, GFP_KERNEL);
 	if (err)
 		return err;
 
diff --git a/drivers/gpu/drm/i915/selftests/igt_flush_test.c b/drivers/gpu/drm/i915/selftests/igt_flush_test.c
index 0d06f559243f..0dcc036d2b83 100644
--- a/drivers/gpu/drm/i915/selftests/igt_flush_test.c
+++ b/drivers/gpu/drm/i915/selftests/igt_flush_test.c
@@ -58,7 +58,7 @@ int igt_flush_test(struct drm_i915_private *i915, unsigned int flags)
 	cond_resched();
 
 	if (flags & I915_WAIT_LOCKED &&
-	    i915_gem_switch_to_kernel_context(i915)) {
+	    i915_gem_switch_to_kernel_context(i915, GFP_KERNEL)) {
 		pr_err("Failed to switch back to kernel context; declaring wedged\n");
 		i915_gem_set_wedged(i915);
 	}
-- 
2.18.0



More information about the Intel-gfx-trybot mailing list