aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2020-03-02 14:42:22 +0200
committerMarge Bot <[email protected]>2020-04-23 15:55:59 +0000
commit8f152ed101fbf3fad3f914a19d260c3bab556c45 (patch)
tree40a30b7587367c995158693d01f902e9a0d1fe77 /src
parentea8cb79742fb061817c11bc8ee7854d3b2583283 (diff)
intel/perf: store default sseu configuration
This is the powergating configuration of the EU array. The default is everything powered. Signed-off-by: Lionel Landwerlin <[email protected]> Acked-by: Tapani Pälli <[email protected]> Reviewed-by: Rafael Antognolli <[email protected]> Reviewed-by: Mark Janes <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>
Diffstat (limited to 'src')
-rw-r--r--src/intel/perf/gen_perf.c15
-rw-r--r--src/intel/perf/gen_perf.h5
2 files changed, 20 insertions, 0 deletions
diff --git a/src/intel/perf/gen_perf.c b/src/intel/perf/gen_perf.c
index 1bf2424e108..43e14a2accb 100644
--- a/src/intel/perf/gen_perf.c
+++ b/src/intel/perf/gen_perf.c
@@ -559,6 +559,18 @@ i915_perf_version(int drm_fd)
return ret < 0 ? 0 : tmp;
}
+static void
+i915_get_sseu(int drm_fd, struct drm_i915_gem_context_param_sseu *sseu)
+{
+ struct drm_i915_gem_context_param arg = {
+ .param = I915_CONTEXT_PARAM_SSEU,
+ .size = sizeof(*sseu),
+ .value = to_user_pointer(sseu)
+ };
+
+ gen_ioctl(drm_fd, DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM, &arg);
+}
+
static bool
load_oa_metrics(struct gen_perf_config *perf, int fd,
const struct gen_device_info *devinfo)
@@ -570,6 +582,9 @@ load_oa_metrics(struct gen_perf_config *perf, int fd,
perf->i915_query_supported = i915_query_perf_config_supported(perf, fd);
perf->i915_perf_version = i915_perf_version(fd);
+ /* Record the default SSEU configuration. */
+ i915_get_sseu(fd, &perf->sseu);
+
/* The existence of this sysctl parameter implies the kernel supports
* the i915 perf interface.
*/
diff --git a/src/intel/perf/gen_perf.h b/src/intel/perf/gen_perf.h
index 4f0805f2b26..a3909165838 100644
--- a/src/intel/perf/gen_perf.h
+++ b/src/intel/perf/gen_perf.h
@@ -38,6 +38,8 @@
#include "compiler/glsl/list.h"
#include "util/ralloc.h"
+#include "drm-uapi/i915_drm.h"
+
struct gen_device_info;
struct gen_perf_config;
@@ -195,6 +197,9 @@ struct gen_perf_config {
/* Version of the i915-perf subsystem, refer to i915_drm.h. */
int i915_perf_version;
+ /* Powergating configuration for the running the query. */
+ struct drm_i915_gem_context_param_sseu sseu;
+
struct gen_perf_query_info *queries;
int n_queries;