On Sat, 24 Mar 2012 19:09:44 -0700 Ben Widawsky <ben at bwidawsk.net> wrote: > RC6 residency should be in intervals of 1.28us, and the counter wraps. > Here is an example using awk to get the various RC6 and RC6+ residency > times in seconds, since boot. > > cat /sys/kernel/debug/dri/0/i915_drpc_info | grep residency | awk > -F':' -F' ' '{print $5 * 1.28 / 1000000}' > > This is primarily for QA, but has other applications as well. An > upcoming patch to add interfaces should be more interesting to > application developers. > > CC: Ouping Zhang <ouping.zhang at intel.com> > Signed-off-by: Ben Widawsky <ben at bwidawsk.net> > Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com> > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch> > --- > drivers/gpu/drm/i915/i915_debugfs.c | 11 +++++++++++ > drivers/gpu/drm/i915/i915_reg.h | 5 +++++ > 2 files changed, 16 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c > b/drivers/gpu/drm/i915/i915_debugfs.c index 66c90d4..72457ff 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -1133,6 +1133,17 @@ static int gen6_drpc_info(struct seq_file *m) > > seq_printf(m, "Core Power Down: %s\n", > yesno(gt_core_status & GEN6_CORE_CPD_STATE_MASK)); > + > + seq_printf(m, "RC6 \"Locked to RPn\" residency since boot: > %d\n", > + I915_READ(GEN6_GT_GFX_RC6_LOCKED)); > + /* Not exactly sure what this is */ > + seq_printf(m, "RC6 residency since boot: %d\n", > + I915_READ(GEN6_GT_GFX_RC6)); > + seq_printf(m, "RC6+ residency since boot: %d\n", > + I915_READ(GEN6_GT_GFX_RC6p)); > + seq_printf(m, "RC6++ residency since boot: %d\n", > + I915_READ(GEN6_GT_GFX_RC6pp)); > + > return 0; > } As noted in patch 3, this was a stale patch, and the comment belongs for the Locked to RPn. > > diff --git a/drivers/gpu/drm/i915/i915_reg.h > b/drivers/gpu/drm/i915/i915_reg.h index f3609f2..b1c3d35 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -3799,6 +3799,11 @@ > GEN6_PM_RP_DOWN_THRESHOLD > | \ GEN6_PM_RP_DOWN_TIMEOUT) > > +#define GEN6_GT_GFX_RC6_LOCKED 0x138104 > +#define GEN6_GT_GFX_RC6 0x138108 > +#define GEN6_GT_GFX_RC6p 0x13810C > +#define GEN6_GT_GFX_RC6pp 0x138110 > + > #define GEN6_PCODE_MAILBOX 0x138124 > #define GEN6_PCODE_READY (1<<31) > #define GEN6_READ_OC_PARAMS 0xc