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 <lionel.g.landwerlin@intel.com> Acked-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com> Reviewed-by: Mark Janes <mark.a.janes@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4021>
This commit is contained in:

committed by
Marge Bot

parent
ea8cb79742
commit
8f152ed101
@@ -559,6 +559,18 @@ i915_perf_version(int drm_fd)
|
|||||||
return ret < 0 ? 0 : tmp;
|
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
|
static bool
|
||||||
load_oa_metrics(struct gen_perf_config *perf, int fd,
|
load_oa_metrics(struct gen_perf_config *perf, int fd,
|
||||||
const struct gen_device_info *devinfo)
|
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_query_supported = i915_query_perf_config_supported(perf, fd);
|
||||||
perf->i915_perf_version = i915_perf_version(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 existence of this sysctl parameter implies the kernel supports
|
||||||
* the i915 perf interface.
|
* the i915 perf interface.
|
||||||
*/
|
*/
|
||||||
|
@@ -38,6 +38,8 @@
|
|||||||
#include "compiler/glsl/list.h"
|
#include "compiler/glsl/list.h"
|
||||||
#include "util/ralloc.h"
|
#include "util/ralloc.h"
|
||||||
|
|
||||||
|
#include "drm-uapi/i915_drm.h"
|
||||||
|
|
||||||
struct gen_device_info;
|
struct gen_device_info;
|
||||||
|
|
||||||
struct gen_perf_config;
|
struct gen_perf_config;
|
||||||
@@ -195,6 +197,9 @@ struct gen_perf_config {
|
|||||||
/* Version of the i915-perf subsystem, refer to i915_drm.h. */
|
/* Version of the i915-perf subsystem, refer to i915_drm.h. */
|
||||||
int i915_perf_version;
|
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;
|
struct gen_perf_query_info *queries;
|
||||||
int n_queries;
|
int n_queries;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user