diff options
author | Riana Tauro <riana.tauro@intel.com> | 2022-10-17 11:05:19 +0530 |
---|---|---|
committer | Ashutosh Dixit <ashutosh.dixit@intel.com> | 2022-10-17 15:31:22 -0700 |
commit | 7874c58b522eef59a44a1c7497ab7ccc2e0e3b93 (patch) | |
tree | ddd317befb591f452571586e6b278d818d9bdb56 /lib/igt_power.h | |
parent | 9b69da6d340ff8ae32a718824186d03a85e58d60 (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.h | 22 |
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 */ |