[PATCH 07/37] request-selftest

Chris Wilson chris at chris-wilson.co.uk
Sat Dec 3 20:45:32 UTC 2016


---
 drivers/gpu/drm/i915/i915_gem_request.c | 49 +++++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/i915_selftests.h   |  1 +
 2 files changed, 50 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_request.c b/drivers/gpu/drm/i915/i915_gem_request.c
index fcf22b0e2967..a4482798d028 100644
--- a/drivers/gpu/drm/i915/i915_gem_request.c
+++ b/drivers/gpu/drm/i915/i915_gem_request.c
@@ -1199,3 +1199,52 @@ void i915_gem_retire_requests(struct drm_i915_private *dev_priv)
 	for_each_engine(engine, dev_priv, id)
 		engine_retire_requests(engine);
 }
+
+#if IS_ENABLED(CONFIG_DRM_I915_SELFTEST)
+#include "i915_selftest.h"
+
+static struct intel_engine_cs *mock_engine(const char *name)
+{
+	struct intel_engine_cs *engine;
+	static int id;
+
+	engine = kzalloc(sizeof(*engine) + 4096, GFP_KERNEL);
+	if (!engine)
+		return NULL;
+
+	/* minimal engine setup for seqno */
+	engine->name = name;
+	engine->id = id++;
+	engine->status_page.page_addr = (void *)(engine + 1);
+
+	/* minimal breadcrumbs init */
+	spin_lock_init(&engine->breadcrumbs.lock);
+	engine->breadcrumbs.mock = true;
+
+	return engine;
+}
+
+static int igt_hello(void *ignore)
+{
+	struct intel_engine_cs *engine;
+	int err = -ENOMEM;
+
+	engine = mock_engine("mock");
+	if (!engine)
+		goto out;
+
+	err = 0;
+	kfree(engine);
+out:
+	return err;
+}
+
+int i915_gem_request_selftest(void)
+{
+	static const struct i915_subtest tests[] = {
+		SUBTEST(igt_hello),
+	};
+
+	return i915_subtests(tests, NULL);
+}
+#endif
diff --git a/drivers/gpu/drm/i915/i915_selftests.h b/drivers/gpu/drm/i915/i915_selftests.h
index 9562ec81c781..ff35d2a3f80d 100644
--- a/drivers/gpu/drm/i915/i915_selftests.h
+++ b/drivers/gpu/drm/i915/i915_selftests.h
@@ -8,5 +8,6 @@
  *
  * Tests are executed in reverse order by igt/drv_selftest
  */
+selftest(requests, i915_gem_request_selftest)
 selftest(breadcrumbs, intel_breadcrumbs_selftest)
 selftest(sanitycheck, i915_selftest_sanitycheck) /* keep last */
-- 
2.10.2



More information about the Intel-gfx-trybot mailing list