On 08/06/16 11:55, Dave Gordon wrote:
To properly verify the driver->doorbell->GuC functionality, validation needs to know how the driver has assigned the doorbell cache lines and registers, so make them visible through debugfs. Signed-off-by: Dave Gordon <david.s.gordon@xxxxxxxxx> --- drivers/gpu/drm/i915/i915_debugfs.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index e4f2c55..fbb4b16 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -2560,6 +2560,7 @@ static int i915_guc_info(struct seq_file *m, void *data) struct i915_guc_client client = {}; struct intel_engine_cs *engine; u64 total = 0; + int i; if (!HAS_GUC_SCHED(dev_priv)) return 0; @@ -2574,6 +2575,14 @@ static int i915_guc_info(struct seq_file *m, void *data) mutex_unlock(&dev->struct_mutex); + seq_printf(m, "Doorbell map:\n"); + BUILD_BUG_ON(ARRAY_SIZE(guc.doorbell_bitmap) % 4); + for (i = 0; i < ARRAY_SIZE(guc.doorbell_bitmap) - 3; i += 4) + seq_printf(m, "\t%016lx %016lx %016lx %016lx\n",
Bitmap is unsigned long so 32-bit or 64-bit depending on the kernel build. Which makes the format wrong for 32-bit. And the ARRAY_SIZE will be different as well. So I think output should be made consistent between the two. Probably either pick u32 or u64 and dump it like that.
#define DECLARE_BITMAP(name,bits) \ unsigned long name[BITS_TO_LONGS(bits)] DECLARE_BITMAP(doorbell_bitmap, GUC_MAX_DOORBELLS);
+ guc.doorbell_bitmap[i], guc.doorbell_bitmap[i+1], + guc.doorbell_bitmap[i+2], guc.doorbell_bitmap[i+3]); + seq_printf(m, "Doorbell next cacheline: 0x%x\n\n", guc.db_cacheline); + seq_printf(m, "GuC total action count: %llu\n", guc.action_count); seq_printf(m, "GuC action failure count: %u\n", guc.action_fail); seq_printf(m, "GuC last action command: 0x%x\n", guc.action_cmd);
Regards, Tvrtko _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx