[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