[PATCH 9/9] hexdump
Chris Wilson
chris at chris-wilson.co.uk
Sun Sep 8 10:01:18 UTC 2019
---
drivers/gpu/drm/i915/i915_gem.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 141024c66f36..0cb7e7cf72fe 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1237,6 +1237,34 @@ int i915_gem_init_hw(struct drm_i915_private *i915)
return ret;
}
+static void hexdump(const void *buf, size_t len)
+{
+ const size_t rowsize = 8 * sizeof(u32);
+ const void *prev = NULL;
+ bool skip = false;
+ size_t pos;
+
+ for (pos = 0; pos < len; pos += rowsize) {
+ char line[128];
+
+ if (prev && !memcmp(prev, buf + pos, rowsize)) {
+ if (!skip) {
+ pr_info("*\n");
+ skip = true;
+ }
+ continue;
+ }
+
+ WARN_ON_ONCE(hex_dump_to_buffer(buf + pos, len - pos,
+ rowsize, sizeof(u32),
+ line, sizeof(line),
+ false) >= sizeof(line));
+ pr_info("[%04zx] %s\n", pos, line);
+
+ prev = buf + pos;
+ skip = false;
+ }
+}
static int __intel_engines_record_defaults(struct drm_i915_private *i915)
{
struct i915_request *requests[I915_NUM_ENGINES] = {};
@@ -1347,6 +1375,9 @@ static int __intel_engines_record_defaults(struct drm_i915_private *i915)
goto out;
}
+ pr_info("%s regs\n", rq->engine->name);
+ hexdump(vaddr + LRC_STATE_PN * PAGE_SIZE, PAGE_SIZE);
+
rq->engine->default_state = i915_gem_object_get(state->obj);
i915_gem_object_unpin_map(state->obj);
}
--
2.23.0
More information about the Intel-gfx-trybot
mailing list