summaryrefslogtreecommitdiff
path: root/lib/igt_power.h
diff options
context:
space:
mode:
authorRiana Tauro <riana.tauro@intel.com>2022-10-17 11:05:19 +0530
committerAshutosh Dixit <ashutosh.dixit@intel.com>2022-10-17 15:31:22 -0700
commit7874c58b522eef59a44a1c7497ab7ccc2e0e3b93 (patch)
treeddd317befb591f452571586e6b278d818d9bdb56 /lib/igt_power.h
parent9b69da6d340ff8ae32a718824186d03a85e58d60 (diff)
lib/igt_power: Add hwmon interface to igt_power
Modify igt_power to expose functions to read energy, power using hwmon and rapl interface Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Riana Tauro <riana.tauro@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Diffstat (limited to 'lib/igt_power.h')
-rw-r--r--lib/igt_power.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/igt_power.h b/lib/igt_power.h
index 11ddcdeee..0984c2df6 100644
--- a/lib/igt_power.h
+++ b/lib/igt_power.h
@@ -39,7 +39,14 @@ struct power_sample {
uint64_t time;
};
+struct igt_power {
+ struct rapl rapl;
+ int hwmon_fd;
+};
+
int rapl_open(struct rapl *r, const char *domain);
+int igt_power_open(int i915, struct igt_power *p, const char *domain);
+void igt_power_close(struct igt_power *p);
static inline int cpu_power_open(struct rapl *r)
{
@@ -77,6 +84,11 @@ static inline void rapl_close(struct rapl *r)
r->fd = -1;
}
+static inline bool igt_power_valid(struct igt_power *p)
+{
+ return (p->rapl.fd >= 0) || (p->hwmon_fd >= 0);
+}
+
static inline double power_J(const struct rapl *r,
const struct power_sample *p0,
const struct power_sample *p1)
@@ -98,4 +110,14 @@ static inline double power_W(const struct rapl *r,
return power_J(r, p0, p1) / power_s(r, p0, p1);
}
+void igt_power_get_energy(struct igt_power *p, struct power_sample *s);
+
+double igt_power_get_mJ(const struct igt_power *power,
+ const struct power_sample *p0,
+ const struct power_sample *p1);
+double igt_power_get_mW(const struct igt_power *power,
+ const struct power_sample *p0,
+ const struct power_sample *p1);
+double igt_power_get_s(const struct power_sample *p0,
+ const struct power_sample *p1);
#endif /* IGT_POWER_H */