[RFC 0/3] drm/i915: expose fifo pipe underrun counts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Joe Konno <joe.konno@xxxxxxxxx>

In tracking down a watermark bug, I discovered the pch and cpu underrun
interrupt handlers would disable themselves after initial reports to prevent an
interrupt/dmesg storm. Storms are bad, but underrun interrupt handling should
not cease. For my case, I need to be able to count pch and cpu underruns for
each pipe or transcoder. Displaying this information in the 'i915_display_info'
node seemed the best course of action.

In order to do this, however, I had to revisit some long-standing behaviors in
the underrun interrupt handlers. One problem became three. Thanks in advance
for your review and feedback.

Requesting comment on the following solutions I came up with (corresponding to
each patch in the series):

  1. provide simple 'getter' mechanisms for pch and cpu underrun reporting
     ("is it enabled?")-- and base dmesg output on the answer to that question;

  2. don't allow the interrupt handlers to disable or filter themselves (and
     prevent accurate counting); and finally

  3. atomically-incremented pch and cpu underrun counters, with those counters
     displayed in debugfs i915_display_info per-pipe, per-transcoder

For: https://bugs.freedesktop.org/show_bug.cgi?id=93865


Joe Konno (3):
  drm/i915: get cpu, pch underrun reporting state
  drm/i915: do not disable handler after underrun
  drm/i915: add underrun counts to i915_display_info

 drivers/gpu/drm/i915/i915_debugfs.c        |  6 ++-
 drivers/gpu/drm/i915/intel_drv.h           |  4 ++
 drivers/gpu/drm/i915/intel_fifo_underrun.c | 78 ++++++++++++++++++++++++------
 3 files changed, 71 insertions(+), 17 deletions(-)

-- 
2.6.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux