[Intel-gfx] [PATCH 3/3] drm/i915: Make file default context persistent

Ben Widawsky benjamin.widawsky at intel.com
Fri Jan 3 06:50:29 CET 2014


With full PPGTT and per file default contexts it no longer makes sense
to inhibit saving and restoring those hw contexts. The /real/ default
context is system wide and still benefits from not saving/restoring.

The upshot of this patch is that with a simple param, userspace will be
able to avoid allocating a new context and simply use the default
context instead.

Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
---
 drivers/gpu/drm/i915/i915_gem_context.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
index 8c7a5b2..d12d1a0 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
@@ -230,7 +230,7 @@ err_out:
 
 static inline bool is_default_context(struct i915_hw_context *ctx)
 {
-	return (ctx->id == DEFAULT_CONTEXT_ID);
+	return (ctx->file_priv == NULL);
 }
 
 /**
@@ -474,8 +474,10 @@ static int context_idr_cleanup(int id, void *p, void *data)
 	struct i915_hw_context *ctx = p;
 
 	/* Ignore the default context because close will handle it */
-	if (is_default_context(ctx))
+	if (ctx->id == DEFAULT_CONTEXT_ID) {
+		BUG_ON(!ctx->file_priv);
 		return 0;
+	}
 
 	i915_gem_context_unreference(ctx);
 	return 0;
-- 
1.8.5.2




More information about the Intel-gfx mailing list