drm/i915/perf: add a parameter to control the size of OA buffer

The way our hardware is designed doesn't seem to let us use the
MI_RECORD_PERF_COUNT command without setting up a circular buffer.

In the case where the user didn't request OA reports to be available
through the i915 perf stream, we can set the OA buffer to the minimum
size to avoid consuming memory which won't be used by the driver.

v2: Simplify oa buffer size exponent selection (Chris)
    Reuse vma size field (Lionel)

v3: Restrict size opening parameter to values supported by HW (Chris)

v4: Drop out of date comment (Matt)
    Add debug message when buffer size is rejected (Matt)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181023100707.31738-5-lionel.g.landwerlin@intel.com
This commit is contained in:
Lionel Landwerlin
2018-10-23 11:07:07 +01:00
parent 5728de2f4f
commit cd956bfcd0
4 changed files with 76 additions and 33 deletions

View File

@@ -1540,6 +1540,13 @@ enum drm_i915_perf_property_id {
*/
DRM_I915_PERF_PROP_OA_EXPONENT,
/**
* Specify a global OA buffer size to be allocated in bytes. The size
* specified must be supported by HW (currently supported sizes are
* powers of 2 ranging from 128Kb to 16Mb).
*/
DRM_I915_PERF_PROP_OA_BUFFER_SIZE,
DRM_I915_PERF_PROP_MAX /* non-ABI */
};