* [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power
@ 2020-05-20 10:38 Chris Wilson
2020-05-20 11:54 ` Tvrtko Ursulin
0 siblings, 1 reply; 8+ messages in thread
From: Chris Wilson @ 2020-05-20 10:38 UTC (permalink / raw)
To: igt-dev; +Cc: intel-gfx, Tvrtko Ursulin, Chris Wilson
With integrated graphics the TDP is shared between the gpu and the cpu,
knowing the total energy consumed by the package is relevant to
understanding throttling.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
tools/intel_gpu_top.c | 195 ++++++++++++++++++++++++++++--------------
1 file changed, 133 insertions(+), 62 deletions(-)
diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 8197482dd..e64cec338 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -69,6 +69,12 @@ struct engine {
struct pmu_counter sema;
};
+struct rapl {
+ uint64_t power, type;
+ double scale;
+ int fd;
+};
+
struct engines {
unsigned int num_engines;
unsigned int num_counters;
@@ -76,9 +82,7 @@ struct engines {
int fd;
struct pmu_pair ts;
- int rapl_fd;
- double rapl_scale;
- const char *rapl_unit;
+ struct rapl r_gpu, r_pkg;
int imc_fd;
double imc_reads_scale;
@@ -90,13 +94,124 @@ struct engines {
struct pmu_counter freq_act;
struct pmu_counter irq;
struct pmu_counter rc6;
- struct pmu_counter rapl;
+ struct pmu_counter s_gpu, s_pkg;
struct pmu_counter imc_reads;
struct pmu_counter imc_writes;
struct engine engine;
};
+__attribute__((format(scanf,3,4)))
+static int igt_sysfs_scanf(int dir, const char *attr, const char *fmt, ...)
+{
+ FILE *file;
+ int fd;
+ int ret = -1;
+
+ fd = openat(dir, attr, O_RDONLY);
+ if (fd < 0)
+ return -1;
+
+ file = fdopen(fd, "r");
+ if (file) {
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = vfscanf(file, fmt, ap);
+ va_end(ap);
+
+ fclose(file);
+ } else {
+ close(fd);
+ }
+
+ return ret;
+}
+
+static int rapl_parse(struct rapl *r, const char *str)
+{
+ locale_t locale, oldlocale;
+ bool result = true;
+ char buf[128];
+ int dir;
+
+ memset(r, 0, sizeof(*r));
+
+ dir = open("/sys/devices/power", O_RDONLY);
+ if (dir < 0)
+ return -errno;
+
+ /* Replace user environment with plain C to match kernel format */
+ locale = newlocale(LC_ALL, "C", 0);
+ oldlocale = uselocale(locale);
+
+ result &= igt_sysfs_scanf(dir, "type", "%"PRIu64, &r->type) == 1;
+
+ snprintf(buf, sizeof(buf), "events/energy-%s", str);
+ result &= igt_sysfs_scanf(dir, buf, "event=%"PRIx64, &r->power) == 1;
+
+ snprintf(buf, sizeof(buf), "events/energy-%s.scale", str);
+ result &= igt_sysfs_scanf(dir, buf, "%lf", &r->scale) == 1;
+
+ uselocale(oldlocale);
+ freelocale(locale);
+
+ close(dir);
+
+ if (!result)
+ return -EINVAL;
+
+ if (isnan(r->scale) || !r->scale)
+ return -ERANGE;
+
+ return 0;
+}
+
+static int rapl_open(struct rapl *r, const char *domain)
+{
+ r->fd = rapl_parse(r, domain);
+ if (r->fd < 0)
+ goto err;
+
+ r->fd = igt_perf_open(r->type, r->power);
+ if (r->fd < 0) {
+ r->fd = -errno;
+ goto err;
+ }
+
+ return 0;
+
+err:
+ errno = 0;
+ return r->fd;
+}
+
+static int gpu_power_open(struct rapl *r)
+{
+ return rapl_open(r, "gpu");
+}
+
+static int pkg_power_open(struct rapl *r)
+{
+ return rapl_open(r, "pkg");
+}
+
+static inline bool rapl_valid(struct rapl *r)
+{
+ return r->fd >= 0;
+}
+
+static inline int ram_power_open(struct rapl *r)
+{
+ return rapl_open(r, "ram");
+}
+
+static inline void rapl_close(struct rapl *r)
+{
+ close(r->fd);
+ r->fd = -1;
+}
+
static uint64_t
get_pmu_config(int dirfd, const char *name, const char *counter)
{
@@ -338,38 +453,6 @@ static double filename_to_double(const char *filename)
return v;
}
-#define RAPL_ROOT "/sys/devices/power/"
-#define RAPL_EVENT "/sys/devices/power/events/"
-
-static uint64_t rapl_type_id(void)
-{
- return filename_to_u64(RAPL_ROOT "type", 10);
-}
-
-static uint64_t rapl_gpu_power(void)
-{
- return filename_to_u64(RAPL_EVENT "energy-gpu", 0);
-}
-
-static double rapl_gpu_power_scale(void)
-{
- return filename_to_double(RAPL_EVENT "energy-gpu.scale");
-}
-
-static const char *rapl_gpu_power_unit(void)
-{
- char buf[32];
-
- if (filename_to_buf(RAPL_EVENT "energy-gpu.unit",
- buf, sizeof(buf)) == 0)
- if (!strcmp(buf, "Joules"))
- return strdup("Watts");
- else
- return strdup(buf);
- else
- return NULL;
-}
-
#define IMC_ROOT "/sys/devices/uncore_imc/"
#define IMC_EVENT "/sys/devices/uncore_imc/events/"
@@ -496,24 +579,8 @@ static int pmu_init(struct engines *engines)
}
}
- engines->rapl_fd = -1;
- if (rapl_type_id()) {
- engines->rapl_scale = rapl_gpu_power_scale();
- engines->rapl_unit = rapl_gpu_power_unit();
- if (!engines->rapl_unit)
- return -1;
-
- engines->rapl.config = rapl_gpu_power();
- if (!engines->rapl.config)
- return -1;
-
- engines->rapl_fd = igt_perf_open(rapl_type_id(),
- engines->rapl.config);
- if (engines->rapl_fd < 0)
- return -1;
-
- engines->rapl.present = true;
- }
+ engines->s_gpu.present = gpu_power_open(&engines->r_gpu) >= 0;
+ engines->s_pkg.present = pkg_power_open(&engines->r_pkg) >= 0;
engines->imc_fd = -1;
if (imc_type_id()) {
@@ -633,9 +700,13 @@ static void pmu_sample(struct engines *engines)
engines->ts.prev = engines->ts.cur;
- if (engines->rapl_fd >= 0)
- __update_sample(&engines->rapl,
- pmu_read_single(engines->rapl_fd));
+ if (engines->s_gpu.present)
+ __update_sample(&engines->s_gpu,
+ pmu_read_single(engines->r_gpu.fd));
+
+ if (engines->s_pkg.present)
+ __update_sample(&engines->s_pkg,
+ pmu_read_single(engines->r_pkg.fd));
if (engines->imc_fd >= 0) {
pmu_read_multi(engines->imc_fd, 2, val);
@@ -1052,8 +1123,8 @@ print_header(struct engines *engines, double t,
.items = rc6_items,
};
struct cnt_item power_items[] = {
- { &engines->rapl, 4, 2, 1.0, t, engines->rapl_scale, "value",
- "W" },
+ { &engines->s_gpu, 4, 2, 1.0, t, engines->r_gpu.scale, "gpu", "W" },
+ { &engines->s_pkg, 4, 2, 1.0, t, engines->r_pkg.scale, "pkg", "W" },
{ NULL, 0, 0, 0.0, 0.0, 0.0, "unit", "W" },
{ },
};
@@ -1083,10 +1154,10 @@ print_header(struct engines *engines, double t,
printf("\033[H\033[J");
if (lines++ < con_h)
- printf("intel-gpu-top - %s/%s MHz; %s%% RC6; %s %s; %s irqs/s\n",
+ printf("intel-gpu-top - %s/%s MHz; %s%% RC6; %s/%s W; %s irqs/s\n",
freq_items[1].buf, freq_items[0].buf,
- rc6_items[0].buf, power_items[0].buf,
- engines->rapl_unit,
+ rc6_items[0].buf,
+ power_items[0].buf, power_items[1].buf,
irq_items[0].buf);
if (lines++ < con_h)
--
2.27.0.rc0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power
2020-05-20 10:38 [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power Chris Wilson
@ 2020-05-20 11:54 ` Tvrtko Ursulin
0 siblings, 0 replies; 8+ messages in thread
From: Tvrtko Ursulin @ 2020-05-20 11:54 UTC (permalink / raw)
To: Chris Wilson, igt-dev; +Cc: intel-gfx, Tvrtko Ursulin
On 20/05/2020 11:38, Chris Wilson wrote:
> With integrated graphics the TDP is shared between the gpu and the cpu,
> knowing the total energy consumed by the package is relevant to
> understanding throttling.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
> tools/intel_gpu_top.c | 195 ++++++++++++++++++++++++++++--------------
> 1 file changed, 133 insertions(+), 62 deletions(-)
>
> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> index 8197482dd..e64cec338 100644
> --- a/tools/intel_gpu_top.c
> +++ b/tools/intel_gpu_top.c
> @@ -69,6 +69,12 @@ struct engine {
> struct pmu_counter sema;
> };
>
> +struct rapl {
> + uint64_t power, type;
> + double scale;
> + int fd;
> +};
> +
> struct engines {
> unsigned int num_engines;
> unsigned int num_counters;
> @@ -76,9 +82,7 @@ struct engines {
> int fd;
> struct pmu_pair ts;
>
> - int rapl_fd;
> - double rapl_scale;
> - const char *rapl_unit;
> + struct rapl r_gpu, r_pkg;
>
> int imc_fd;
> double imc_reads_scale;
> @@ -90,13 +94,124 @@ struct engines {
> struct pmu_counter freq_act;
> struct pmu_counter irq;
> struct pmu_counter rc6;
> - struct pmu_counter rapl;
> + struct pmu_counter s_gpu, s_pkg;
> struct pmu_counter imc_reads;
> struct pmu_counter imc_writes;
>
> struct engine engine;
> };
>
> +__attribute__((format(scanf,3,4)))
> +static int igt_sysfs_scanf(int dir, const char *attr, const char *fmt, ...)
> +{
> + FILE *file;
> + int fd;
> + int ret = -1;
> +
> + fd = openat(dir, attr, O_RDONLY);
> + if (fd < 0)
> + return -1;
> +
> + file = fdopen(fd, "r");
> + if (file) {
> + va_list ap;
> +
> + va_start(ap, fmt);
> + ret = vfscanf(file, fmt, ap);
> + va_end(ap);
> +
> + fclose(file);
> + } else {
> + close(fd);
> + }
> +
> + return ret;
> +}
It's a bit naughty to add this helper only to be used from RAPL. We
should either consolidate to use this one or have this patch use
existing filenamd_to_* helpers.
> +
> +static int rapl_parse(struct rapl *r, const char *str)
> +{
> + locale_t locale, oldlocale;
> + bool result = true;
> + char buf[128];
> + int dir;
> +
> + memset(r, 0, sizeof(*r));
> +
> + dir = open("/sys/devices/power", O_RDONLY);
> + if (dir < 0)
> + return -errno;
> +
> + /* Replace user environment with plain C to match kernel format */
> + locale = newlocale(LC_ALL, "C", 0);
> + oldlocale = uselocale(locale);
> +
> + result &= igt_sysfs_scanf(dir, "type", "%"PRIu64, &r->type) == 1;
> +
> + snprintf(buf, sizeof(buf), "events/energy-%s", str);
> + result &= igt_sysfs_scanf(dir, buf, "event=%"PRIx64, &r->power) == 1;
> +
> + snprintf(buf, sizeof(buf), "events/energy-%s.scale", str);
> + result &= igt_sysfs_scanf(dir, buf, "%lf", &r->scale) == 1;
> +
> + uselocale(oldlocale);
> + freelocale(locale);
> +
> + close(dir);
> +
> + if (!result)
> + return -EINVAL;
> +
> + if (isnan(r->scale) || !r->scale)
> + return -ERANGE;
> +
> + return 0;
> +}
> +
> +static int rapl_open(struct rapl *r, const char *domain)
> +{
> + r->fd = rapl_parse(r, domain);
> + if (r->fd < 0)
> + goto err;
> +
> + r->fd = igt_perf_open(r->type, r->power);
> + if (r->fd < 0) {
> + r->fd = -errno;
> + goto err;
> + }
> +
> + return 0;
> +
> +err:
> + errno = 0;
> + return r->fd;
> +}
> +
> +static int gpu_power_open(struct rapl *r)
> +{
> + return rapl_open(r, "gpu");
> +}
> +
> +static int pkg_power_open(struct rapl *r)
> +{
> + return rapl_open(r, "pkg");
> +}
> +
> +static inline bool rapl_valid(struct rapl *r)
> +{
> + return r->fd >= 0;
> +}
> +
> +static inline int ram_power_open(struct rapl *r)
> +{
> + return rapl_open(r, "ram");
> +}
> +
> +static inline void rapl_close(struct rapl *r)
> +{
> + close(r->fd);
> + r->fd = -1;
> +}
> +
> static uint64_t
> get_pmu_config(int dirfd, const char *name, const char *counter)
> {
> @@ -338,38 +453,6 @@ static double filename_to_double(const char *filename)
> return v;
> }
>
> -#define RAPL_ROOT "/sys/devices/power/"
> -#define RAPL_EVENT "/sys/devices/power/events/"
> -
> -static uint64_t rapl_type_id(void)
> -{
> - return filename_to_u64(RAPL_ROOT "type", 10);
> -}
> -
> -static uint64_t rapl_gpu_power(void)
> -{
> - return filename_to_u64(RAPL_EVENT "energy-gpu", 0);
> -}
> -
> -static double rapl_gpu_power_scale(void)
> -{
> - return filename_to_double(RAPL_EVENT "energy-gpu.scale");
> -}
> -
> -static const char *rapl_gpu_power_unit(void)
> -{
> - char buf[32];
> -
> - if (filename_to_buf(RAPL_EVENT "energy-gpu.unit",
> - buf, sizeof(buf)) == 0)
> - if (!strcmp(buf, "Joules"))
> - return strdup("Watts");
> - else
> - return strdup(buf);
> - else
> - return NULL;
> -}
> -
> #define IMC_ROOT "/sys/devices/uncore_imc/"
> #define IMC_EVENT "/sys/devices/uncore_imc/events/"
>
> @@ -496,24 +579,8 @@ static int pmu_init(struct engines *engines)
> }
> }
>
> - engines->rapl_fd = -1;
> - if (rapl_type_id()) {
> - engines->rapl_scale = rapl_gpu_power_scale();
> - engines->rapl_unit = rapl_gpu_power_unit();
> - if (!engines->rapl_unit)
> - return -1;
> -
> - engines->rapl.config = rapl_gpu_power();
> - if (!engines->rapl.config)
> - return -1;
> -
> - engines->rapl_fd = igt_perf_open(rapl_type_id(),
> - engines->rapl.config);
> - if (engines->rapl_fd < 0)
> - return -1;
> -
> - engines->rapl.present = true;
> - }
> + engines->s_gpu.present = gpu_power_open(&engines->r_gpu) >= 0;
> + engines->s_pkg.present = pkg_power_open(&engines->r_pkg) >= 0;
>
> engines->imc_fd = -1;
> if (imc_type_id()) {
> @@ -633,9 +700,13 @@ static void pmu_sample(struct engines *engines)
>
> engines->ts.prev = engines->ts.cur;
>
> - if (engines->rapl_fd >= 0)
> - __update_sample(&engines->rapl,
> - pmu_read_single(engines->rapl_fd));
> + if (engines->s_gpu.present)
> + __update_sample(&engines->s_gpu,
> + pmu_read_single(engines->r_gpu.fd));
> +
> + if (engines->s_pkg.present)
> + __update_sample(&engines->s_pkg,
> + pmu_read_single(engines->r_pkg.fd));
>
> if (engines->imc_fd >= 0) {
> pmu_read_multi(engines->imc_fd, 2, val);
> @@ -1052,8 +1123,8 @@ print_header(struct engines *engines, double t,
> .items = rc6_items,
> };
> struct cnt_item power_items[] = {
> - { &engines->rapl, 4, 2, 1.0, t, engines->rapl_scale, "value",
> - "W" },
> + { &engines->s_gpu, 4, 2, 1.0, t, engines->r_gpu.scale, "gpu", "W" },
> + { &engines->s_pkg, 4, 2, 1.0, t, engines->r_pkg.scale, "pkg", "W" },
> { NULL, 0, 0, 0.0, 0.0, 0.0, "unit", "W" },
> { },
> };
> @@ -1083,10 +1154,10 @@ print_header(struct engines *engines, double t,
> printf("\033[H\033[J");
>
> if (lines++ < con_h)
> - printf("intel-gpu-top - %s/%s MHz; %s%% RC6; %s %s; %s irqs/s\n",
> + printf("intel-gpu-top - %s/%s MHz; %s%% RC6; %s/%s W; %s irqs/s\n",
Detecting the unit was also a good thing to have so why drop it?
Regards,
Tvrtko
> freq_items[1].buf, freq_items[0].buf,
> - rc6_items[0].buf, power_items[0].buf,
> - engines->rapl_unit,
> + rc6_items[0].buf,
> + power_items[0].buf, power_items[1].buf,
> irq_items[0].buf);
>
> if (lines++ < con_h)
>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power
@ 2020-11-24 14:19 Chris Wilson
2020-11-24 15:30 ` Tvrtko Ursulin
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Chris Wilson @ 2020-11-24 14:19 UTC (permalink / raw)
To: igt-dev; +Cc: Tvrtko Ursulin, Chris Wilson
With integrated graphics the TDP is shared between the gpu and the cpu,
knowing the total energy consumed by the package is relevant to
understanding throttling.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
tools/intel_gpu_top.c | 209 ++++++++++++++++++++++++++++--------------
1 file changed, 141 insertions(+), 68 deletions(-)
diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
index 86de09aa9..f3613eb72 100644
--- a/tools/intel_gpu_top.c
+++ b/tools/intel_gpu_top.c
@@ -71,6 +71,12 @@ struct engine {
struct pmu_counter sema;
};
+struct rapl {
+ uint64_t power, type;
+ double scale;
+ int fd;
+};
+
struct engines {
unsigned int num_engines;
unsigned int num_counters;
@@ -78,9 +84,7 @@ struct engines {
int fd;
struct pmu_pair ts;
- int rapl_fd;
- double rapl_scale;
- const char *rapl_unit;
+ struct rapl r_gpu, r_pkg;
int imc_fd;
double imc_reads_scale;
@@ -92,7 +96,7 @@ struct engines {
struct pmu_counter freq_act;
struct pmu_counter irq;
struct pmu_counter rc6;
- struct pmu_counter rapl;
+ struct pmu_counter s_gpu, s_pkg;
struct pmu_counter imc_reads;
struct pmu_counter imc_writes;
@@ -108,6 +112,117 @@ struct engines {
};
+__attribute__((format(scanf,3,4)))
+static int igt_sysfs_scanf(int dir, const char *attr, const char *fmt, ...)
+{
+ FILE *file;
+ int fd;
+ int ret = -1;
+
+ fd = openat(dir, attr, O_RDONLY);
+ if (fd < 0)
+ return -1;
+
+ file = fdopen(fd, "r");
+ if (file) {
+ va_list ap;
+
+ va_start(ap, fmt);
+ ret = vfscanf(file, fmt, ap);
+ va_end(ap);
+
+ fclose(file);
+ } else {
+ close(fd);
+ }
+
+ return ret;
+}
+
+static int rapl_parse(struct rapl *r, const char *str)
+{
+ locale_t locale, oldlocale;
+ bool result = true;
+ char buf[128];
+ int dir;
+
+ memset(r, 0, sizeof(*r));
+
+ dir = open("/sys/devices/power", O_RDONLY);
+ if (dir < 0)
+ return -errno;
+
+ /* Replace user environment with plain C to match kernel format */
+ locale = newlocale(LC_ALL, "C", 0);
+ oldlocale = uselocale(locale);
+
+ result &= igt_sysfs_scanf(dir, "type", "%"PRIu64, &r->type) == 1;
+
+ snprintf(buf, sizeof(buf), "events/energy-%s", str);
+ result &= igt_sysfs_scanf(dir, buf, "event=%"PRIx64, &r->power) == 1;
+
+ snprintf(buf, sizeof(buf), "events/energy-%s.scale", str);
+ result &= igt_sysfs_scanf(dir, buf, "%lf", &r->scale) == 1;
+
+ uselocale(oldlocale);
+ freelocale(locale);
+
+ close(dir);
+
+ if (!result)
+ return -EINVAL;
+
+ if (isnan(r->scale) || !r->scale)
+ return -ERANGE;
+
+ return 0;
+}
+
+static int rapl_open(struct rapl *r, const char *domain)
+{
+ r->fd = rapl_parse(r, domain);
+ if (r->fd < 0)
+ goto err;
+
+ r->fd = igt_perf_open(r->type, r->power);
+ if (r->fd < 0) {
+ r->fd = -errno;
+ goto err;
+ }
+
+ return 0;
+
+err:
+ errno = 0;
+ return r->fd;
+}
+
+static int gpu_power_open(struct rapl *r)
+{
+ return rapl_open(r, "gpu");
+}
+
+static int pkg_power_open(struct rapl *r)
+{
+ return rapl_open(r, "pkg");
+}
+
+static inline bool rapl_valid(struct rapl *r)
+{
+ return r->fd >= 0;
+}
+
+static inline int ram_power_open(struct rapl *r)
+{
+ return rapl_open(r, "ram");
+}
+
+static inline void rapl_close(struct rapl *r)
+{
+ close(r->fd);
+ r->fd = -1;
+}
+
static uint64_t
get_pmu_config(int dirfd, const char *name, const char *counter)
{
@@ -357,38 +472,6 @@ static double filename_to_double(const char *filename)
return v;
}
-#define RAPL_ROOT "/sys/devices/power/"
-#define RAPL_EVENT "/sys/devices/power/events/"
-
-static uint64_t rapl_type_id(void)
-{
- return filename_to_u64(RAPL_ROOT "type", 10);
-}
-
-static uint64_t rapl_gpu_power(void)
-{
- return filename_to_u64(RAPL_EVENT "energy-gpu", 0);
-}
-
-static double rapl_gpu_power_scale(void)
-{
- return filename_to_double(RAPL_EVENT "energy-gpu.scale");
-}
-
-static const char *rapl_gpu_power_unit(void)
-{
- char buf[32];
-
- if (filename_to_buf(RAPL_EVENT "energy-gpu.unit",
- buf, sizeof(buf)) == 0)
- if (!strcmp(buf, "Joules"))
- return strdup("Watts");
- else
- return strdup(buf);
- else
- return NULL;
-}
-
#define IMC_ROOT "/sys/devices/uncore_imc/"
#define IMC_EVENT "/sys/devices/uncore_imc/events/"
@@ -516,23 +599,9 @@ static int pmu_init(struct engines *engines)
}
}
- engines->rapl_fd = -1;
- if (!engines->discrete && rapl_type_id()) {
- engines->rapl_scale = rapl_gpu_power_scale();
- engines->rapl_unit = rapl_gpu_power_unit();
- if (!engines->rapl_unit)
- return -1;
-
- engines->rapl.config = rapl_gpu_power();
- if (!engines->rapl.config)
- return -1;
-
- engines->rapl_fd = igt_perf_open(rapl_type_id(),
- engines->rapl.config);
- if (engines->rapl_fd < 0)
- return -1;
-
- engines->rapl.present = true;
+ if (!engines->discrete) {
+ engines->s_gpu.present = gpu_power_open(&engines->r_gpu) >= 0;
+ engines->s_pkg.present = pkg_power_open(&engines->r_pkg) >= 0;
}
engines->imc_fd = -1;
@@ -653,9 +722,13 @@ static void pmu_sample(struct engines *engines)
engines->ts.prev = engines->ts.cur;
- if (engines->rapl_fd >= 0)
- __update_sample(&engines->rapl,
- pmu_read_single(engines->rapl_fd));
+ if (engines->s_gpu.present)
+ __update_sample(&engines->s_gpu,
+ pmu_read_single(engines->r_gpu.fd));
+
+ if (engines->s_pkg.present)
+ __update_sample(&engines->s_pkg,
+ pmu_read_single(engines->r_pkg.fd));
if (engines->imc_fd >= 0) {
pmu_read_multi(engines->imc_fd, 2, val);
@@ -1076,8 +1149,8 @@ print_header(const struct igt_device_card *card,
.items = rc6_items,
};
struct cnt_item power_items[] = {
- { &engines->rapl, 4, 2, 1.0, t, engines->rapl_scale, "value",
- "W" },
+ { &engines->s_gpu, 4, 2, 1.0, t, engines->r_gpu.scale, "gpu", "W" },
+ { &engines->s_pkg, 4, 2, 1.0, t, engines->r_pkg.scale, "pkg", "W" },
{ NULL, 0, 0, 0.0, 0.0, 0.0, "unit", "W" },
{ },
};
@@ -1108,17 +1181,17 @@ print_header(const struct igt_device_card *card,
if (lines++ < con_h) {
printf("intel-gpu-top: %s - ", card->card);
- if (!engines->discrete)
- printf("%s/%s MHz; %s%% RC6; %s %s; %s irqs/s\n",
- freq_items[1].buf, freq_items[0].buf,
- rc6_items[0].buf, power_items[0].buf,
- engines->rapl_unit,
- irq_items[0].buf);
- else
- printf("%s/%s MHz; %s%% RC6; %s irqs/s\n",
- freq_items[1].buf, freq_items[0].buf,
- rc6_items[0].buf, irq_items[0].buf);
+ printf("%s/%s MHz; %s%% RC6; ",
+ freq_items[1].buf, freq_items[0].buf,
+ rc6_items[0].buf);
+ if (engines->s_gpu.present) {
+ printf("%s/%s W; ",
+ power_items[0].buf,
+ power_items[1].buf);
+ }
+ printf("%s irqs/s\n", irq_items[0].buf);
}
+
if (lines++ < con_h)
printf("\n");
}
--
2.29.2
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power
2020-11-24 14:19 [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power Chris Wilson
@ 2020-11-24 15:30 ` Tvrtko Ursulin
2020-11-24 15:49 ` Chris Wilson
2020-11-24 15:45 ` [igt-dev] ✓ Fi.CI.BAT: success for tools/intel_gpu_top: Include total package power (rev2) Patchwork
2020-11-24 19:34 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2 siblings, 1 reply; 8+ messages in thread
From: Tvrtko Ursulin @ 2020-11-24 15:30 UTC (permalink / raw)
To: Chris Wilson, igt-dev; +Cc: Tvrtko Ursulin
On 24/11/2020 14:19, Chris Wilson wrote:
> With integrated graphics the TDP is shared between the gpu and the cpu,
> knowing the total energy consumed by the package is relevant to
> understanding throttling.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
> tools/intel_gpu_top.c | 209 ++++++++++++++++++++++++++++--------------
> 1 file changed, 141 insertions(+), 68 deletions(-)
>
> diff --git a/tools/intel_gpu_top.c b/tools/intel_gpu_top.c
> index 86de09aa9..f3613eb72 100644
> --- a/tools/intel_gpu_top.c
> +++ b/tools/intel_gpu_top.c
> @@ -71,6 +71,12 @@ struct engine {
> struct pmu_counter sema;
> };
>
> +struct rapl {
> + uint64_t power, type;
> + double scale;
> + int fd;
> +};
> +
> struct engines {
> unsigned int num_engines;
> unsigned int num_counters;
> @@ -78,9 +84,7 @@ struct engines {
> int fd;
> struct pmu_pair ts;
>
> - int rapl_fd;
> - double rapl_scale;
> - const char *rapl_unit;
> + struct rapl r_gpu, r_pkg;
>
> int imc_fd;
> double imc_reads_scale;
> @@ -92,7 +96,7 @@ struct engines {
> struct pmu_counter freq_act;
> struct pmu_counter irq;
> struct pmu_counter rc6;
> - struct pmu_counter rapl;
> + struct pmu_counter s_gpu, s_pkg;
> struct pmu_counter imc_reads;
> struct pmu_counter imc_writes;
>
> @@ -108,6 +112,117 @@ struct engines {
>
> };
>
> +__attribute__((format(scanf,3,4)))
> +static int igt_sysfs_scanf(int dir, const char *attr, const char *fmt, ...)
> +{
> + FILE *file;
> + int fd;
> + int ret = -1;
> +
> + fd = openat(dir, attr, O_RDONLY);
> + if (fd < 0)
> + return -1;
> +
> + file = fdopen(fd, "r");
> + if (file) {
> + va_list ap;
> +
> + va_start(ap, fmt);
> + ret = vfscanf(file, fmt, ap);
> + va_end(ap);
> +
> + fclose(file);
> + } else {
> + close(fd);
> + }
> +
> + return ret;
> +}
> +
> +static int rapl_parse(struct rapl *r, const char *str)
> +{
> + locale_t locale, oldlocale;
> + bool result = true;
> + char buf[128];
> + int dir;
> +
> + memset(r, 0, sizeof(*r));
Not strictly needed as long as struct rapl are still embedded in engines.
> +
> + dir = open("/sys/devices/power", O_RDONLY);
> + if (dir < 0)
> + return -errno;
> +
> + /* Replace user environment with plain C to match kernel format */
> + locale = newlocale(LC_ALL, "C", 0);
> + oldlocale = uselocale(locale);
> +
> + result &= igt_sysfs_scanf(dir, "type", "%"PRIu64, &r->type) == 1;
> +
> + snprintf(buf, sizeof(buf), "events/energy-%s", str);
> + result &= igt_sysfs_scanf(dir, buf, "event=%"PRIx64, &r->power) == 1;
> +
> + snprintf(buf, sizeof(buf), "events/energy-%s.scale", str);
> + result &= igt_sysfs_scanf(dir, buf, "%lf", &r->scale) == 1;
> +
> + uselocale(oldlocale);
> + freelocale(locale);
> +
> + close(dir);
> +
> + if (!result)
> + return -EINVAL;
> +
> + if (isnan(r->scale) || !r->scale)
> + return -ERANGE;
> +
> + return 0;
> +}
> +
> +static int rapl_open(struct rapl *r, const char *domain)
> +{
> + r->fd = rapl_parse(r, domain);
> + if (r->fd < 0)
> + goto err;
> +
> + r->fd = igt_perf_open(r->type, r->power);
> + if (r->fd < 0) {
> + r->fd = -errno;
> + goto err;
> + }
> +
> + return 0;
> +
> +err:
> + errno = 0;
> + return r->fd;
> +}
> +
> +static int gpu_power_open(struct rapl *r)
> +{
> + return rapl_open(r, "gpu");
> +}
> +
> +static int pkg_power_open(struct rapl *r)
> +{
> + return rapl_open(r, "pkg");
> +}
> +
> +static inline bool rapl_valid(struct rapl *r)
> +{
> + return r->fd >= 0;
> +}
Unused.
> +
> +static inline int ram_power_open(struct rapl *r)
> +{
> + return rapl_open(r, "ram");
> +}
Same.
> +
> +static inline void rapl_close(struct rapl *r)
> +{
> + close(r->fd);
> + r->fd = -1;
> +}
> +
> static uint64_t
> get_pmu_config(int dirfd, const char *name, const char *counter)
> {
> @@ -357,38 +472,6 @@ static double filename_to_double(const char *filename)
> return v;
> }
>
> -#define RAPL_ROOT "/sys/devices/power/"
> -#define RAPL_EVENT "/sys/devices/power/events/"
> -
> -static uint64_t rapl_type_id(void)
> -{
> - return filename_to_u64(RAPL_ROOT "type", 10);
> -}
> -
> -static uint64_t rapl_gpu_power(void)
> -{
> - return filename_to_u64(RAPL_EVENT "energy-gpu", 0);
> -}
> -
> -static double rapl_gpu_power_scale(void)
> -{
> - return filename_to_double(RAPL_EVENT "energy-gpu.scale");
> -}
> -
> -static const char *rapl_gpu_power_unit(void)
> -{
> - char buf[32];
> -
> - if (filename_to_buf(RAPL_EVENT "energy-gpu.unit",
> - buf, sizeof(buf)) == 0)
> - if (!strcmp(buf, "Joules"))
> - return strdup("Watts");
> - else
> - return strdup(buf);
We lose this handling of unexpected changes. Hard to decide if that is
very important. Should be possible to keep by a simple addition to
rapl_parse I think.
> - else
> - return NULL;
> -}
> -
> #define IMC_ROOT "/sys/devices/uncore_imc/"
> #define IMC_EVENT "/sys/devices/uncore_imc/events/"
>
> @@ -516,23 +599,9 @@ static int pmu_init(struct engines *engines)
> }
> }
>
> - engines->rapl_fd = -1;
> - if (!engines->discrete && rapl_type_id()) {
> - engines->rapl_scale = rapl_gpu_power_scale();
> - engines->rapl_unit = rapl_gpu_power_unit();
> - if (!engines->rapl_unit)
> - return -1;
> -
> - engines->rapl.config = rapl_gpu_power();
> - if (!engines->rapl.config)
> - return -1;
> -
> - engines->rapl_fd = igt_perf_open(rapl_type_id(),
> - engines->rapl.config);
> - if (engines->rapl_fd < 0)
> - return -1;
> -
> - engines->rapl.present = true;
> + if (!engines->discrete) {
> + engines->s_gpu.present = gpu_power_open(&engines->r_gpu) >= 0;
> + engines->s_pkg.present = pkg_power_open(&engines->r_pkg) >= 0;
Nit but possible return values seem to be only zero or negative.
> }
>
> engines->imc_fd = -1;
> @@ -653,9 +722,13 @@ static void pmu_sample(struct engines *engines)
>
> engines->ts.prev = engines->ts.cur;
>
> - if (engines->rapl_fd >= 0)
> - __update_sample(&engines->rapl,
> - pmu_read_single(engines->rapl_fd));
> + if (engines->s_gpu.present)
> + __update_sample(&engines->s_gpu,
> + pmu_read_single(engines->r_gpu.fd));
> +
> + if (engines->s_pkg.present)
> + __update_sample(&engines->s_pkg,
> + pmu_read_single(engines->r_pkg.fd));
>
> if (engines->imc_fd >= 0) {
> pmu_read_multi(engines->imc_fd, 2, val);
> @@ -1076,8 +1149,8 @@ print_header(const struct igt_device_card *card,
> .items = rc6_items,
> };
> struct cnt_item power_items[] = {
> - { &engines->rapl, 4, 2, 1.0, t, engines->rapl_scale, "value",
> - "W" },
> + { &engines->s_gpu, 4, 2, 1.0, t, engines->r_gpu.scale, "gpu", "W" },
> + { &engines->s_pkg, 4, 2, 1.0, t, engines->r_pkg.scale, "pkg", "W" },
> { NULL, 0, 0, 0.0, 0.0, 0.0, "unit", "W" },
> { },
> };
> @@ -1108,17 +1181,17 @@ print_header(const struct igt_device_card *card,
>
> if (lines++ < con_h) {
> printf("intel-gpu-top: %s - ", card->card);
> - if (!engines->discrete)
> - printf("%s/%s MHz; %s%% RC6; %s %s; %s irqs/s\n",
> - freq_items[1].buf, freq_items[0].buf,
> - rc6_items[0].buf, power_items[0].buf,
> - engines->rapl_unit,
> - irq_items[0].buf);
> - else
> - printf("%s/%s MHz; %s%% RC6; %s irqs/s\n",
> - freq_items[1].buf, freq_items[0].buf,
> - rc6_items[0].buf, irq_items[0].buf);
> + printf("%s/%s MHz; %s%% RC6; ",
> + freq_items[1].buf, freq_items[0].buf,
> + rc6_items[0].buf);
> + if (engines->s_gpu.present) {
> + printf("%s/%s W; ",
> + power_items[0].buf,
> + power_items[1].buf);
> + }
> + printf("%s irqs/s\n", irq_items[0].buf);
> }
> +
> if (lines++ < con_h)
> printf("\n");
> }
>
Can you be convinced to convert IMC as well to avoid having two
implementations of opening and parsing perf sysfs?
Regards,
Tvrtko
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tools/intel_gpu_top: Include total package power (rev2)
2020-11-24 14:19 [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power Chris Wilson
2020-11-24 15:30 ` Tvrtko Ursulin
@ 2020-11-24 15:45 ` Patchwork
2020-11-24 19:34 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2020-11-24 15:45 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 5988 bytes --]
== Series Details ==
Series: tools/intel_gpu_top: Include total package power (rev2)
URL : https://patchwork.freedesktop.org/series/77463/
State : success
== Summary ==
CI Bug Log - changes from IGT_5870 -> IGTPW_5219
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/index.html
Known issues
------------
Here are the changes found in IGTPW_5219 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_module_load@reload:
- fi-byt-j1900: [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-byt-j1900/igt@i915_module_load@reload.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-byt-j1900/igt@i915_module_load@reload.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
- fi-icl-u2: [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
* igt@kms_pipe_crc_basic@read-crc-pipe-c:
- fi-tgl-y: [PASS][5] -> [DMESG-WARN][6] ([i915#1982]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-tgl-y/igt@kms_pipe_crc_basic@read-crc-pipe-c.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-tgl-y/igt@kms_pipe_crc_basic@read-crc-pipe-c.html
* igt@prime_vgem@basic-read:
- fi-tgl-y: [PASS][7] -> [DMESG-WARN][8] ([i915#402]) +2 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-tgl-y/igt@prime_vgem@basic-read.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-tgl-y/igt@prime_vgem@basic-read.html
#### Possible fixes ####
* igt@gem_flink_basic@basic:
- fi-tgl-y: [DMESG-WARN][9] ([i915#402]) -> [PASS][10] +2 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-tgl-y/igt@gem_flink_basic@basic.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-tgl-y/igt@gem_flink_basic@basic.html
* igt@i915_module_load@reload:
- fi-tgl-u2: [DMESG-WARN][11] ([i915#1982] / [k.org#205379]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-tgl-u2/igt@i915_module_load@reload.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-tgl-u2/igt@i915_module_load@reload.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-cfl-8109u: [DMESG-FAIL][13] ([i915#541]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-cfl-8109u/igt@i915_selftest@live@gt_heartbeat.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-cfl-8109u/igt@i915_selftest@live@gt_heartbeat.html
* igt@i915_selftest@live@gt_timelines:
- fi-apl-guc: [INCOMPLETE][15] ([i915#1635]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-apl-guc/igt@i915_selftest@live@gt_timelines.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-apl-guc/igt@i915_selftest@live@gt_timelines.html
* igt@kms_busy@basic@flip:
- fi-kbl-soraka: [DMESG-WARN][17] ([i915#1982]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-kbl-soraka/igt@kms_busy@basic@flip.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-kbl-soraka/igt@kms_busy@basic@flip.html
* igt@kms_chamelium@dp-crc-fast:
- fi-kbl-7500u: [DMESG-WARN][19] ([i915#1982] / [i915#262]) -> [PASS][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka: [DMESG-WARN][21] ([i915#1982]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
#### Warnings ####
* igt@i915_pm_rpm@basic-pci-d3-state:
- fi-tgl-y: [DMESG-WARN][23] ([i915#2411]) -> [DMESG-WARN][24] ([i915#1982] / [i915#2411])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/fi-tgl-y/igt@i915_pm_rpm@basic-pci-d3-state.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/fi-tgl-y/igt@i915_pm_rpm@basic-pci-d3-state.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#262]: https://gitlab.freedesktop.org/drm/intel/issues/262
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[i915#541]: https://gitlab.freedesktop.org/drm/intel/issues/541
[k.org#205379]: https://bugzilla.kernel.org/show_bug.cgi?id=205379
Participating hosts (43 -> 38)
------------------------------
Missing (5): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-blb-e6850 fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5870 -> IGTPW_5219
CI-20190529: 20190529
CI_DRM_9382: ac60f3f3090115d21f028bffa2dcfb67f695c4f2 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5219: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/index.html
IGT_5870: 08b13995b85df26a77212e4fb21fd772976ef33c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/index.html
[-- Attachment #1.2: Type: text/html, Size: 7482 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power
2020-11-24 15:30 ` Tvrtko Ursulin
@ 2020-11-24 15:49 ` Chris Wilson
2020-11-24 16:01 ` Tvrtko Ursulin
0 siblings, 1 reply; 8+ messages in thread
From: Chris Wilson @ 2020-11-24 15:49 UTC (permalink / raw)
To: Tvrtko Ursulin, igt-dev; +Cc: Tvrtko Ursulin
Quoting Tvrtko Ursulin (2020-11-24 15:30:53)
>
> On 24/11/2020 14:19, Chris Wilson wrote:
> > -static const char *rapl_gpu_power_unit(void)
> > -{
> > - char buf[32];
> > -
> > - if (filename_to_buf(RAPL_EVENT "energy-gpu.unit",
> > - buf, sizeof(buf)) == 0)
> > - if (!strcmp(buf, "Joules"))
> > - return strdup("Watts");
> > - else
> > - return strdup(buf);
>
> We lose this handling of unexpected changes. Hard to decide if that is
> very important. Should be possible to keep by a simple addition to
> rapl_parse I think.
Do you think we need more than a fprintf(stderr) ?
snprintf(buf, sizeof(buf), "events/energy-%s.unit", str);
units = igt_sysfs_get(dir, buf);
if (units && strcmp(units, "Joules"))
fprintf(stderr, "Unexpected units for RAPL %s: found %s\n",
str, units);
free(units);
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power
2020-11-24 15:49 ` Chris Wilson
@ 2020-11-24 16:01 ` Tvrtko Ursulin
0 siblings, 0 replies; 8+ messages in thread
From: Tvrtko Ursulin @ 2020-11-24 16:01 UTC (permalink / raw)
To: Chris Wilson, igt-dev; +Cc: Tvrtko Ursulin
On 24/11/2020 15:49, Chris Wilson wrote:
> Quoting Tvrtko Ursulin (2020-11-24 15:30:53)
>>
>> On 24/11/2020 14:19, Chris Wilson wrote:
>>> -static const char *rapl_gpu_power_unit(void)
>>> -{
>>> - char buf[32];
>>> -
>>> - if (filename_to_buf(RAPL_EVENT "energy-gpu.unit",
>>> - buf, sizeof(buf)) == 0)
>>> - if (!strcmp(buf, "Joules"))
>>> - return strdup("Watts");
>>> - else
>>> - return strdup(buf);
>>
>> We lose this handling of unexpected changes. Hard to decide if that is
>> very important. Should be possible to keep by a simple addition to
>> rapl_parse I think.
>
> Do you think we need more than a fprintf(stderr) ?
>
> snprintf(buf, sizeof(buf), "events/energy-%s.unit", str);
> units = igt_sysfs_get(dir, buf);
> if (units && strcmp(units, "Joules"))
> fprintf(stderr, "Unexpected units for RAPL %s: found %s\n",
> str, units);
> free(units);
That sounds fine to me. "if (!units || strcmp)" probably.
Regards,
Tvrtko
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tools/intel_gpu_top: Include total package power (rev2)
2020-11-24 14:19 [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power Chris Wilson
2020-11-24 15:30 ` Tvrtko Ursulin
2020-11-24 15:45 ` [igt-dev] ✓ Fi.CI.BAT: success for tools/intel_gpu_top: Include total package power (rev2) Patchwork
@ 2020-11-24 19:34 ` Patchwork
2 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2020-11-24 19:34 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 21046 bytes --]
== Series Details ==
Series: tools/intel_gpu_top: Include total package power (rev2)
URL : https://patchwork.freedesktop.org/series/77463/
State : success
== Summary ==
CI Bug Log - changes from IGT_5870_full -> IGTPW_5219_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/index.html
Known issues
------------
Here are the changes found in IGTPW_5219_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-glk: [PASS][1] -> [FAIL][2] ([i915#2389])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk6/igt@gem_exec_reloc@basic-many-active@rcs0.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk5/igt@gem_exec_reloc@basic-many-active@rcs0.html
* igt@gem_exec_whisper@basic-contexts-forked:
- shard-glk: [PASS][3] -> [DMESG-WARN][4] ([i915#118] / [i915#95])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk6/igt@gem_exec_whisper@basic-contexts-forked.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk3/igt@gem_exec_whisper@basic-contexts-forked.html
* igt@gem_mmap_wc@pf-nonblock:
- shard-hsw: [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-hsw2/igt@gem_mmap_wc@pf-nonblock.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-hsw8/igt@gem_mmap_wc@pf-nonblock.html
* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-glk: [PASS][7] -> [FAIL][8] ([i915#644])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk1/igt@gem_ppgtt@flink-and-close-vma-leak.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk6/igt@gem_ppgtt@flink-and-close-vma-leak.html
* igt@gen9_exec_parse@allowed-all:
- shard-kbl: [PASS][9] -> [DMESG-WARN][10] ([i915#1436] / [i915#716])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl2/igt@gen9_exec_parse@allowed-all.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl3/igt@gen9_exec_parse@allowed-all.html
* igt@i915_module_load@reload:
- shard-iclb: [PASS][11] -> [DMESG-WARN][12] ([i915#1982])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb5/igt@i915_module_load@reload.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-iclb3/igt@i915_module_load@reload.html
* igt@kms_color@pipe-c-legacy-gamma:
- shard-kbl: [PASS][13] -> [FAIL][14] ([i915#71])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl4/igt@kms_color@pipe-c-legacy-gamma.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl1/igt@kms_color@pipe-c-legacy-gamma.html
- shard-apl: [PASS][15] -> [FAIL][16] ([i915#1635] / [i915#71])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-apl1/igt@kms_color@pipe-c-legacy-gamma.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-apl1/igt@kms_color@pipe-c-legacy-gamma.html
- shard-glk: [PASS][17] -> [FAIL][18] ([i915#71])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk2/igt@kms_color@pipe-c-legacy-gamma.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk9/igt@kms_color@pipe-c-legacy-gamma.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-glk: [PASS][19] -> [DMESG-WARN][20] ([i915#1982]) +2 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk7/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk9/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
* igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-vga1-hdmi-a1:
- shard-hsw: [PASS][21] -> [INCOMPLETE][22] ([i915#2637])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-hsw2/igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-vga1-hdmi-a1.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-hsw5/igt@kms_flip@2x-flip-vs-suspend-interruptible@ab-vga1-hdmi-a1.html
* igt@kms_flip@blocking-absolute-wf_vblank-interruptible@a-dp1:
- shard-kbl: [PASS][23] -> [DMESG-WARN][24] ([i915#1982]) +1 similar issue
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl7/igt@kms_flip@blocking-absolute-wf_vblank-interruptible@a-dp1.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl1/igt@kms_flip@blocking-absolute-wf_vblank-interruptible@a-dp1.html
* igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2:
- shard-glk: [PASS][25] -> [FAIL][26] ([i915#79])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk7/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc:
- shard-tglb: [PASS][27] -> [DMESG-WARN][28] ([i915#1982]) +3 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-tglb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_psr@psr2_cursor_plane_move:
- shard-iclb: [PASS][29] -> [SKIP][30] ([fdo#109441]) +1 similar issue
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-iclb8/igt@kms_psr@psr2_cursor_plane_move.html
* igt@kms_universal_plane@disable-primary-vs-flip-pipe-b:
- shard-apl: [PASS][31] -> [DMESG-WARN][32] ([i915#1635] / [i915#1982]) +4 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-apl6/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-apl4/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html
#### Possible fixes ####
* igt@device_reset@unbind-reset-rebind:
- shard-glk: [INCOMPLETE][33] ([i915#2283] / [i915#2405]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk6/igt@device_reset@unbind-reset-rebind.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk1/igt@device_reset@unbind-reset-rebind.html
- shard-apl: [INCOMPLETE][35] ([i915#1635] / [i915#2283] / [i915#2405]) -> [PASS][36]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-apl3/igt@device_reset@unbind-reset-rebind.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-apl6/igt@device_reset@unbind-reset-rebind.html
- shard-kbl: [INCOMPLETE][37] ([i915#2283] / [i915#2405]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl2/igt@device_reset@unbind-reset-rebind.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl3/igt@device_reset@unbind-reset-rebind.html
- shard-tglb: [INCOMPLETE][39] ([i915#1602] / [i915#750]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-tglb3/igt@device_reset@unbind-reset-rebind.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-tglb7/igt@device_reset@unbind-reset-rebind.html
- shard-iclb: [INCOMPLETE][41] ([i915#2283] / [i915#2405]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb8/igt@device_reset@unbind-reset-rebind.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-iclb8/igt@device_reset@unbind-reset-rebind.html
* igt@i915_pm_backlight@fade_with_suspend:
- shard-iclb: [INCOMPLETE][43] ([i915#1185] / [i915#2369]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb5/igt@i915_pm_backlight@fade_with_suspend.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-iclb5/igt@i915_pm_backlight@fade_with_suspend.html
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [FAIL][45] ([i915#454]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb8/igt@i915_pm_dc@dc6-psr.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-iclb8/igt@i915_pm_dc@dc6-psr.html
* igt@i915_pm_rpm@gem-execbuf-stress:
- shard-glk: [SKIP][47] ([fdo#109271]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk3/igt@i915_pm_rpm@gem-execbuf-stress.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk9/igt@i915_pm_rpm@gem-execbuf-stress.html
- shard-apl: [SKIP][49] ([fdo#109271] / [i915#1635]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-apl1/igt@i915_pm_rpm@gem-execbuf-stress.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-apl8/igt@i915_pm_rpm@gem-execbuf-stress.html
- shard-kbl: [SKIP][51] ([fdo#109271]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl3/igt@i915_pm_rpm@gem-execbuf-stress.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl4/igt@i915_pm_rpm@gem-execbuf-stress.html
- shard-hsw: [SKIP][53] ([fdo#109271]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-hsw5/igt@i915_pm_rpm@gem-execbuf-stress.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-hsw2/igt@i915_pm_rpm@gem-execbuf-stress.html
* igt@kms_cursor_edge_walk@pipe-c-256x256-left-edge:
- shard-apl: [DMESG-WARN][55] ([i915#1635] / [i915#1982]) -> [PASS][56] +7 similar issues
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-apl2/igt@kms_cursor_edge_walk@pipe-c-256x256-left-edge.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-apl8/igt@kms_cursor_edge_walk@pipe-c-256x256-left-edge.html
* igt@kms_flip@2x-flip-vs-fences-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [DMESG-WARN][57] ([i915#1982]) -> [PASS][58] +5 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk1/igt@kms_flip@2x-flip-vs-fences-interruptible@ab-hdmi-a1-hdmi-a2.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk1/igt@kms_flip@2x-flip-vs-fences-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-tglb: [FAIL][59] ([i915#2598]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-tglb1/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-tglb7/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt:
- shard-tglb: [DMESG-WARN][61] ([i915#1982]) -> [PASS][62] +4 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-tglb5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-tglb2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary:
- shard-kbl: [FAIL][63] ([i915#49]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary.html
- shard-apl: [FAIL][65] ([i915#1635] / [i915#49]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-apl1/igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-apl4/igt@kms_frontbuffer_tracking@fbc-indfb-scaledprimary.html
* igt@kms_psr@psr2_sprite_plane_move:
- shard-iclb: [SKIP][67] ([fdo#109441]) -> [PASS][68] +2 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb8/igt@kms_psr@psr2_sprite_plane_move.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
* igt@kms_vblank@pipe-b-wait-forked-busy:
- shard-kbl: [DMESG-WARN][69] ([i915#1982]) -> [PASS][70] +8 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl7/igt@kms_vblank@pipe-b-wait-forked-busy.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl7/igt@kms_vblank@pipe-b-wait-forked-busy.html
#### Warnings ####
* igt@device_reset@unbind-reset-rebind:
- shard-hsw: [INCOMPLETE][71] ([i915#2283] / [i915#2405]) -> [WARN][72] ([i915#2283])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-hsw1/igt@device_reset@unbind-reset-rebind.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-hsw5/igt@device_reset@unbind-reset-rebind.html
* igt@i915_pm_backlight@fade_with_suspend:
- shard-tglb: [DMESG-WARN][73] ([i915#1436] / [i915#1602] / [i915#1887] / [i915#2411]) -> [DMESG-WARN][74] ([i915#2411])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-tglb2/igt@i915_pm_backlight@fade_with_suspend.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-tglb2/igt@i915_pm_backlight@fade_with_suspend.html
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-iclb: [WARN][75] ([i915#1804]) -> [WARN][76] ([i915#2681])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb6/igt@i915_pm_rc6_residency@rc6-idle.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-iclb1/igt@i915_pm_rc6_residency@rc6-idle.html
* igt@kms_content_protection@legacy:
- shard-apl: [TIMEOUT][77] ([i915#1319] / [i915#1635]) -> [FAIL][78] ([fdo#110321] / [fdo#110336] / [i915#1635])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-apl3/igt@kms_content_protection@legacy.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-apl3/igt@kms_content_protection@legacy.html
* igt@kms_frontbuffer_tracking@psr-suspend:
- shard-tglb: [DMESG-WARN][79] ([i915#2411]) -> [DMESG-WARN][80] ([i915#1982] / [i915#2411])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-tglb3/igt@kms_frontbuffer_tracking@psr-suspend.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-tglb2/igt@kms_frontbuffer_tracking@psr-suspend.html
* igt@kms_plane_alpha_blend@pipe-a-alpha-basic:
- shard-apl: [FAIL][81] ([fdo#108145] / [i915#1635] / [i915#265]) -> [DMESG-FAIL][82] ([fdo#108145] / [i915#1635] / [i915#1982]) +1 similar issue
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-apl4/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html
- shard-glk: [FAIL][83] ([fdo#108145] / [i915#265]) -> [DMESG-FAIL][84] ([fdo#108145] / [i915#1982])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk6/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk8/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html
* igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
- shard-kbl: [FAIL][85] ([fdo#108145] / [i915#265]) -> [DMESG-FAIL][86] ([fdo#108145] / [i915#1982])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl6/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl3/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html
* igt@runner@aborted:
- shard-hsw: [FAIL][87] ([i915#2283] / [i915#2295] / [i915#483]) -> [FAIL][88] ([i915#2295])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-hsw1/igt@runner@aborted.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-hsw5/igt@runner@aborted.html
- shard-kbl: ([FAIL][89], [FAIL][90]) ([i915#2295] / [i915#483]) -> ([FAIL][91], [FAIL][92]) ([fdo#109271] / [i915#1436] / [i915#2295] / [i915#483] / [i915#716])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl2/igt@runner@aborted.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-kbl7/igt@runner@aborted.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl3/igt@runner@aborted.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-kbl3/igt@runner@aborted.html
- shard-iclb: ([FAIL][93], [FAIL][94], [FAIL][95]) ([i915#1814] / [i915#2283] / [i915#2295] / [i915#483]) -> [FAIL][96] ([i915#2295] / [i915#483])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb4/igt@runner@aborted.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb5/igt@runner@aborted.html
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-iclb8/igt@runner@aborted.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-iclb8/igt@runner@aborted.html
- shard-glk: ([FAIL][97], [FAIL][98]) ([i915#2295] / [i915#483] / [k.org#202321]) -> [FAIL][99] ([i915#2295] / [k.org#202321])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk3/igt@runner@aborted.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5870/shard-glk6/igt@runner@aborted.html
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/shard-glk1/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#110321]: https://bugs.freedesktop.org/show_bug.cgi?id=110321
[fdo#110336]: https://bugs.freedesktop.org/show_bug.cgi?id=110336
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185
[i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804
[i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
[i915#1887]: https://gitlab.freedesktop.org/drm/intel/issues/1887
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
[i915#2295]: https://gitlab.freedesktop.org/drm/intel/issues/2295
[i915#2369]: https://gitlab.freedesktop.org/drm/intel/issues/2369
[i915#2389]: https://gitlab.freedesktop.org/drm/intel/issues/2389
[i915#2405]: https://gitlab.freedesktop.org/drm/intel/issues/2405
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2597]: https://gitlab.freedesktop.org/drm/intel/issues/2597
[i915#2598]: https://gitlab.freedesktop.org/drm/intel/issues/2598
[i915#2637]: https://gitlab.freedesktop.org/drm/intel/issues/2637
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#483]: https://gitlab.freedesktop.org/drm/intel/issues/483
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
[i915#71]: https://gitlab.freedesktop.org/drm/intel/issues/71
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#750]: https://gitlab.freedesktop.org/drm/intel/issues/750
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
[k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321
Participating hosts (8 -> 8)
------------------------------
No changes in participating hosts
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5870 -> IGTPW_5219
CI-20190529: 20190529
CI_DRM_9382: ac60f3f3090115d21f028bffa2dcfb67f695c4f2 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5219: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/index.html
IGT_5870: 08b13995b85df26a77212e4fb21fd772976ef33c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5219/index.html
[-- Attachment #1.2: Type: text/html, Size: 27342 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-11-24 19:34 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-24 14:19 [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power Chris Wilson
2020-11-24 15:30 ` Tvrtko Ursulin
2020-11-24 15:49 ` Chris Wilson
2020-11-24 16:01 ` Tvrtko Ursulin
2020-11-24 15:45 ` [igt-dev] ✓ Fi.CI.BAT: success for tools/intel_gpu_top: Include total package power (rev2) Patchwork
2020-11-24 19:34 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2020-05-20 10:38 [igt-dev] [PATCH i-g-t] tools/intel_gpu_top: Include total package power Chris Wilson
2020-05-20 11:54 ` Tvrtko Ursulin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox