[PATCH v4 00/11] Enable i915 perf stream for Haswell OA unit

Robert Bragg robert at sixbynine.org
Thu Aug 18 22:42:30 UTC 2016


I've updated the stream->ops->read() interface to avoid the struct
i915_perf_read_state so it's hopefully a bit clearer to see the state being
passed around:

    int (*read)(struct i915_perf_stream *stream,
                char __user *buf,
                size_t count,
                size_t *offset);

The inout offset is the buf offset (aka bytes read) which are still tracked
separate from any error state until we get back to the common code that handles
the final check for whether the error should be squashed if any data was
successfully copied. This avoids some duplication and more fiddly error paths
in the ->read implementations.

The initialization code is now spit into an i915_perf_init() called in
i915_driver_init_early() and an i915_perf_register() called in
i915_driver_register() once we're visible to userspace, after sysfs has been
initialized.

- Robert

Robert Bragg (11):
  drm/i915: Add i915 perf infrastructure
  drm/i915: rename OACONTROL GEN7_OACONTROL
  drm/i915: return EACCES for check_cmd() failures
  drm/i915: don't whitelist oacontrol in cmd parser
  drm/i915: Add 'render basic' Haswell OA unit config
  drm/i915: Enable i915 perf stream for Haswell OA unit
  drm/i915: advertise available metrics via sysfs
  drm/i915: Add dev.i915.perf_event_paranoid sysctl option
  drm/i915: add oa_event_min_timer_exponent sysctl
  drm/i915: Add more Haswell OA metric sets
  drm/i915: Add a kerneldoc summary for i915_perf.c

 drivers/gpu/drm/i915/Makefile           |    4 +
 drivers/gpu/drm/i915/i915_cmd_parser.c  |   40 +-
 drivers/gpu/drm/i915/i915_drv.c         |    9 +
 drivers/gpu/drm/i915/i915_drv.h         |  160 +++
 drivers/gpu/drm/i915/i915_gem_context.c |   22 +-
 drivers/gpu/drm/i915/i915_oa_hsw.c      |  659 ++++++++++++
 drivers/gpu/drm/i915/i915_oa_hsw.h      |   38 +
 drivers/gpu/drm/i915/i915_perf.c        | 1668 +++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/i915_reg.h         |  340 ++++++-
 drivers/gpu/drm/i915/intel_ringbuffer.c |    7 +-
 include/uapi/drm/i915_drm.h             |  133 +++
 11 files changed, 3038 insertions(+), 42 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/i915_oa_hsw.c
 create mode 100644 drivers/gpu/drm/i915/i915_oa_hsw.h
 create mode 100644 drivers/gpu/drm/i915/i915_perf.c

-- 
2.9.2



More information about the dri-devel mailing list