* [igt-dev] [PATCH i-g-t 1/3] lib/i915: Pretty print HW semaphores
@ 2019-01-31 16:17 Chris Wilson
2019-01-31 16:17 ` [igt-dev] [PATCH i-g-t 2/3] lib: Add GPU power measurement Chris Wilson
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Chris Wilson @ 2019-01-31 16:17 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
Include whether the scheduler is using HW semaphore assistance in our
pretty debug strings, and make the caps known for requires.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
lib/i915/gem_scheduler.c | 22 +++++++++++++++++++---
lib/i915/gem_scheduler.h | 2 ++
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/lib/i915/gem_scheduler.c b/lib/i915/gem_scheduler.c
index ad156306f..f9e052278 100644
--- a/lib/i915/gem_scheduler.c
+++ b/lib/i915/gem_scheduler.c
@@ -67,7 +67,7 @@ unsigned gem_scheduler_capability(int fd)
}
/**
- * gem_has_scheduler:
+ * gem_scheduler_enabled:
* @fd: open i915 drm file descriptor
*
* Feature test macro to query whether the driver has scheduling capability.
@@ -79,7 +79,7 @@ bool gem_scheduler_enabled(int fd)
}
/**
- * gem_has_ctx_priority:
+ * gem_scheduler_has_ctx_priority:
* @fd: open i915 drm file descriptor
*
* Feature test macro to query whether the driver supports assigning custom
@@ -92,7 +92,7 @@ bool gem_scheduler_has_ctx_priority(int fd)
}
/**
- * gem_has_preemption:
+ * gem_scheduler_has_preemption:
* @fd: open i915 drm file descriptor
*
* Feature test macro to query whether the driver supports preempting active
@@ -104,6 +104,20 @@ bool gem_scheduler_has_preemption(int fd)
LOCAL_I915_SCHEDULER_CAP_PREEMPTION;
}
+/**
+ * gem_scheduler_has_semaphores:
+ * @fd: open i915 drm file descriptor
+ *
+ * Feature test macro to query whether the driver supports using HW semaphores
+ * to schedule dependencies in parallel (using the HW to delay execution until
+ * ready to reduce latency).
+ */
+bool gem_scheduler_has_semaphores(int fd)
+{
+ return gem_scheduler_capability(fd) &
+ LOCAL_I915_SCHEDULER_CAP_SEMAPHORES;
+}
+
/**
* gem_scheduler_print_capability:
* @fd: open i915 drm file descriptor
@@ -122,4 +136,6 @@ void gem_scheduler_print_capability(int fd)
igt_info(" - With priority sorting\n");
if (caps & LOCAL_I915_SCHEDULER_CAP_PREEMPTION)
igt_info(" - With preemption enabled\n");
+ if (caps & LOCAL_I915_SCHEDULER_CAP_SEMAPHORES)
+ igt_info(" - With HW semaphores enabled\n");
}
diff --git a/lib/i915/gem_scheduler.h b/lib/i915/gem_scheduler.h
index 9fcb02665..ead3eacb5 100644
--- a/lib/i915/gem_scheduler.h
+++ b/lib/i915/gem_scheduler.h
@@ -27,11 +27,13 @@
#define LOCAL_I915_SCHEDULER_CAP_ENABLED (1 << 0)
#define LOCAL_I915_SCHEDULER_CAP_PRIORITY (1 << 1)
#define LOCAL_I915_SCHEDULER_CAP_PREEMPTION (1 << 2)
+#define LOCAL_I915_SCHEDULER_CAP_SEMAPHORES (1 << 3)
unsigned gem_scheduler_capability(int fd);
bool gem_scheduler_enabled(int fd);
bool gem_scheduler_has_ctx_priority(int fd);
bool gem_scheduler_has_preemption(int fd);
+bool gem_scheduler_has_semaphores(int fd);
void gem_scheduler_print_capability(int fd);
#endif /* GEM_SCHEDULER_H */
--
2.20.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 2/3] lib: Add GPU power measurement
2019-01-31 16:17 [igt-dev] [PATCH i-g-t 1/3] lib/i915: Pretty print HW semaphores Chris Wilson
@ 2019-01-31 16:17 ` Chris Wilson
2019-01-31 16:17 ` [igt-dev] [PATCH i-g-t 3/3] i915/gem_exec_schedule: Measure semaphore power consumption Chris Wilson
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2019-01-31 16:17 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
Read the RAPL power metrics courtesy of perf. Or your local HW
equivalent?
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
lib/Makefile.sources | 2 +
lib/igt_gpu_power.c | 106 +++++++++++++++++++++++++++++++++++++++++++
lib/igt_gpu_power.h | 51 +++++++++++++++++++++
lib/meson.build | 2 +
4 files changed, 161 insertions(+)
create mode 100644 lib/igt_gpu_power.c
create mode 100644 lib/igt_gpu_power.h
diff --git a/lib/Makefile.sources b/lib/Makefile.sources
index 808b9617e..54d9e3e7b 100644
--- a/lib/Makefile.sources
+++ b/lib/Makefile.sources
@@ -24,6 +24,8 @@ lib_source_list = \
igt_color_encoding.c \
igt_color_encoding.h \
igt_edid_template.h \
+ igt_gpu_power.c \
+ igt_gpu_power.h \
igt_gt.c \
igt_gt.h \
igt_gvt.c \
diff --git a/lib/igt_gpu_power.c b/lib/igt_gpu_power.c
new file mode 100644
index 000000000..bf362b2f0
--- /dev/null
+++ b/lib/igt_gpu_power.c
@@ -0,0 +1,106 @@
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <locale.h>
+#include <math.h>
+#include <unistd.h>
+
+#include "igt_gpu_power.h"
+#include "igt_perf.h"
+
+static int filename_to_buf(const char *filename, char *buf, unsigned int sz)
+{
+ int fd;
+ ssize_t ret;
+
+ fd = open(filename, O_RDONLY);
+ if (fd < 0)
+ return -1;
+
+ ret = read(fd, buf, sz - 1);
+ close(fd);
+ if (ret < 1)
+ return -1;
+
+ buf[ret] = '\0';
+
+ return 0;
+}
+
+static uint64_t filename_to_u64(const char *filename, int base)
+{
+ char buf[64], *b;
+
+ if (filename_to_buf(filename, buf, sizeof(buf)))
+ return 0;
+
+ /*
+ * Handle both single integer and key=value formats by skipping
+ * leading non-digits.
+ */
+ b = buf;
+ while (*b && !isdigit(*b))
+ b++;
+
+ return strtoull(b, NULL, base);
+}
+
+static double filename_to_double(const char *filename)
+{
+ char *oldlocale;
+ char buf[80];
+ double v;
+
+ if (filename_to_buf(filename, buf, sizeof(buf)))
+ return 0;
+
+ oldlocale = setlocale(LC_ALL, "C");
+ v = strtod(buf, NULL);
+ setlocale(LC_ALL, oldlocale);
+
+ return v;
+}
+
+static uint64_t rapl_type_id(void)
+{
+ return filename_to_u64("/sys/devices/power/type", 10);
+}
+
+static uint64_t rapl_gpu_power(void)
+{
+ return filename_to_u64("/sys/devices/power/events/energy-gpu", 0);
+}
+
+static double rapl_gpu_power_scale(void)
+{
+ return filename_to_double("/sys/devices/power/events/energy-gpu.scale");
+}
+
+int gpu_power_open(struct gpu_power *power)
+{
+ power->fd = igt_perf_open(rapl_type_id(), rapl_gpu_power());
+ if (power->fd < 0)
+ return -errno;
+
+ power->scale = rapl_gpu_power_scale();
+ if (isnan(power->scale) || !power->scale) {
+ close(power->fd);
+ return -ERANGE;
+ }
+ power->scale *= 1e9;
+
+ return 0;
+}
+
+int gpu_power_read(struct gpu_power *power, struct gpu_power_sample *s)
+{
+ if (read(power->fd, s, sizeof(*s)) != sizeof(*s))
+ return -EINVAL;
+
+ return 0;
+}
+
+void gpu_power_close(struct gpu_power *power)
+{
+ close(power->fd);
+}
diff --git a/lib/igt_gpu_power.h b/lib/igt_gpu_power.h
new file mode 100644
index 000000000..f6e3cbb4d
--- /dev/null
+++ b/lib/igt_gpu_power.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright © 2019 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ */
+
+#ifndef IGT_GPU_POWER_H
+#define IGT_GPU_POWER_H
+
+#include <stdint.h>
+
+struct gpu_power {
+ int fd;
+ double scale;
+};
+
+struct gpu_power_sample {
+ uint64_t energy;
+ uint64_t time;
+};
+
+int gpu_power_open(struct gpu_power *power);
+int gpu_power_read(struct gpu_power *power, struct gpu_power_sample *s);
+void gpu_power_close(struct gpu_power *power);
+
+static inline double gpu_power_W(const struct gpu_power *p,
+ const struct gpu_power_sample *t0,
+ const struct gpu_power_sample *t1)
+{
+ return (t1->energy - t0->energy) * p->scale / (t1->time - t0->time);
+}
+
+#endif /* IGT_GPU_POWER_H */
diff --git a/lib/meson.build b/lib/meson.build
index dd36f8180..63279ae30 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -8,9 +8,11 @@ lib_sources = [
'igt_debugfs.c',
'igt_device.c',
'igt_aux.c',
+ 'igt_gpu_power.c',
'igt_gt.c',
'igt_gvt.c',
'igt_matrix.c',
+ 'igt_perf.c',
'igt_primes.c',
'igt_rand.c',
'igt_stats.c',
--
2.20.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] [PATCH i-g-t 3/3] i915/gem_exec_schedule: Measure semaphore power consumption
2019-01-31 16:17 [igt-dev] [PATCH i-g-t 1/3] lib/i915: Pretty print HW semaphores Chris Wilson
2019-01-31 16:17 ` [igt-dev] [PATCH i-g-t 2/3] lib: Add GPU power measurement Chris Wilson
@ 2019-01-31 16:17 ` Chris Wilson
2019-04-03 1:28 ` Ashutosh Dixit
2019-01-31 16:41 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/i915: Pretty print HW semaphores Patchwork
2019-02-01 0:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 1 reply; 7+ messages in thread
From: Chris Wilson @ 2019-01-31 16:17 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
How much energy does spinning on a semaphore consume relative to plain
old spinning?
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
tests/i915/gem_exec_schedule.c | 72 +++++++++++++++++++++++++++++++++-
1 file changed, 71 insertions(+), 1 deletion(-)
diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
index 0462ce84f..184ceb7d6 100644
--- a/tests/i915/gem_exec_schedule.c
+++ b/tests/i915/gem_exec_schedule.c
@@ -29,9 +29,10 @@
#include <signal.h>
#include "igt.h"
-#include "igt_vgem.h"
+#include "igt_gpu_power.h"
#include "igt_rand.h"
#include "igt_sysfs.h"
+#include "igt_vgem.h"
#include "i915/gem_ring.h"
#define LO 0
@@ -1191,6 +1192,65 @@ static void test_pi_ringfull(int fd, unsigned int engine)
munmap(result, 4096);
}
+static void measure_semaphore_power(int i915)
+{
+ struct gpu_power power;
+ unsigned int engine, signaler;
+
+ igt_require(gpu_power_open(&power) == 0);
+
+ for_each_physical_engine(i915, signaler) {
+ struct gpu_power_sample s_spin[2];
+ struct gpu_power_sample s_sema[2];
+ double baseline, total;
+ int64_t jiffie = 1;
+ igt_spin_t *spin;
+
+ spin = __igt_spin_batch_new(i915,
+ .engine = signaler,
+ .flags = IGT_SPIN_POLL_RUN);
+ gem_wait(i915, spin->handle, &jiffie); /* waitboost */
+ igt_assert(spin->running);
+ igt_spin_busywait_until_running(spin);
+
+ gpu_power_read(&power, &s_spin[0]);
+ usleep(100*1000);
+ gpu_power_read(&power, &s_spin[1]);
+
+ /* Add a waiter to each engine */
+ for_each_physical_engine(i915, engine) {
+ igt_spin_t *sema;
+
+ if (engine == signaler)
+ continue;
+
+ sema = __igt_spin_batch_new(i915,
+ .engine = engine,
+ .dependency = spin->handle);
+
+ igt_spin_batch_free(i915, sema);
+ }
+ usleep(10); /* just give the tasklets a chance to run */
+
+ gpu_power_read(&power, &s_sema[0]);
+ usleep(100*1000);
+ gpu_power_read(&power, &s_sema[1]);
+
+ igt_spin_batch_free(i915, spin);
+
+ baseline = gpu_power_W(&power, &s_spin[0], &s_spin[1]);
+ total = gpu_power_W(&power, &s_sema[0], &s_sema[1]);
+
+ igt_info("%s: %.1fmW + %.1fmW (total %1.fmW)\n",
+ e__->name,
+ 1e3 * baseline,
+ 1e3 * (total - baseline),
+ 1e3 * total);
+ }
+
+ gpu_power_close(&power);
+}
+
igt_main
{
const struct intel_execution_engine *e;
@@ -1351,6 +1411,16 @@ igt_main
}
}
+ igt_subtest_group {
+ igt_fixture {
+ igt_require(gem_scheduler_enabled(fd));
+ igt_require(gem_scheduler_has_semaphores(fd));
+ }
+
+ igt_subtest("semaphore-power")
+ measure_semaphore_power(fd);
+ }
+
igt_fixture {
igt_stop_hang_detector();
close(fd);
--
2.20.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/i915: Pretty print HW semaphores
2019-01-31 16:17 [igt-dev] [PATCH i-g-t 1/3] lib/i915: Pretty print HW semaphores Chris Wilson
2019-01-31 16:17 ` [igt-dev] [PATCH i-g-t 2/3] lib: Add GPU power measurement Chris Wilson
2019-01-31 16:17 ` [igt-dev] [PATCH i-g-t 3/3] i915/gem_exec_schedule: Measure semaphore power consumption Chris Wilson
@ 2019-01-31 16:41 ` Patchwork
2019-02-01 0:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2019-01-31 16:41 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/3] lib/i915: Pretty print HW semaphores
URL : https://patchwork.freedesktop.org/series/56052/
State : success
== Summary ==
CI Bug Log - changes from IGT_4802 -> IGTPW_2329
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/56052/revisions/1/mbox/
Known issues
------------
Here are the changes found in IGTPW_2329 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live_hangcheck:
- fi-skl-iommu: PASS -> INCOMPLETE [fdo#108602] / [fdo#108744]
* igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
- fi-byt-clapper: PASS -> FAIL [fdo#103191] / [fdo#107362]
#### Possible fixes ####
* igt@i915_module_load@reload:
- fi-blb-e6850: INCOMPLETE [fdo#107718] -> PASS
* igt@i915_selftest@live_execlists:
- fi-apl-guc: INCOMPLETE [fdo#103927] -> PASS
* igt@kms_frontbuffer_tracking@basic:
- fi-byt-clapper: FAIL [fdo#103167] -> PASS
* igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
- fi-byt-clapper: FAIL [fdo#107362] -> PASS
* igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
- fi-byt-clapper: FAIL [fdo#103191] / [fdo#107362] -> PASS
* igt@pm_rpm@module-reload:
- fi-skl-6770hq: FAIL [fdo#108511] -> PASS
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
[fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#108511]: https://bugs.freedesktop.org/show_bug.cgi?id=108511
[fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
[fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
Participating hosts (48 -> 45)
------------------------------
Additional (1): fi-kbl-7567u
Missing (4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan
Build changes
-------------
* IGT: IGT_4802 -> IGTPW_2329
CI_DRM_5518: 2369fd28d3a46b865f6d4f1d309a4c6b7b4e6d93 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_2329: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2329/
IGT_4802: 4049adf01014af077df2174def4fadf7cecb066e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Testlist changes ==
+igt@gem_exec_schedule@semaphore-power
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2329/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/3] lib/i915: Pretty print HW semaphores
2019-01-31 16:17 [igt-dev] [PATCH i-g-t 1/3] lib/i915: Pretty print HW semaphores Chris Wilson
` (2 preceding siblings ...)
2019-01-31 16:41 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/i915: Pretty print HW semaphores Patchwork
@ 2019-02-01 0:10 ` Patchwork
3 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2019-02-01 0:10 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/3] lib/i915: Pretty print HW semaphores
URL : https://patchwork.freedesktop.org/series/56052/
State : success
== Summary ==
CI Bug Log - changes from IGT_4802_full -> IGTPW_2329_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/56052/revisions/1/mbox/
Known issues
------------
Here are the changes found in IGTPW_2329_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_mmap_gtt@basic-wc:
- shard-snb: PASS -> INCOMPLETE [fdo#105411]
* igt@i915_suspend@debugfs-reader:
- shard-apl: PASS -> INCOMPLETE [fdo#103927]
* igt@kms_available_modes_crc@available_mode_test_crc:
- shard-apl: PASS -> FAIL [fdo#106641]
* igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-b:
- shard-snb: NOTRUN -> DMESG-WARN [fdo#107956] +2
* igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c:
- shard-glk: PASS -> DMESG-WARN [fdo#107956]
* igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
- shard-apl: PASS -> FAIL [fdo#106510] / [fdo#108145]
* igt@kms_cursor_crc@cursor-256x256-sliding:
- shard-glk: PASS -> FAIL [fdo#103232] +6
* igt@kms_cursor_crc@cursor-64x21-sliding:
- shard-apl: PASS -> FAIL [fdo#103232] +2
* igt@kms_cursor_crc@cursor-64x64-suspend:
- shard-apl: PASS -> FAIL [fdo#103191] / [fdo#103232]
* igt@kms_plane@pixel-format-pipe-c-planes-source-clamping:
- shard-glk: PASS -> FAIL [fdo#108948] +1
* igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
- shard-glk: PASS -> FAIL [fdo#108145] +1
* igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
- shard-glk: NOTRUN -> FAIL [fdo#103166] +1
- shard-apl: PASS -> FAIL [fdo#103166] +3
* igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-glk: PASS -> FAIL [fdo#103166] +4
* igt@kms_setmode@basic:
- shard-snb: NOTRUN -> FAIL [fdo#99912]
* igt@kms_vblank@crtc-id:
- shard-snb: NOTRUN -> FAIL [fdo#109490]
#### Possible fixes ####
* igt@gem_exec_params@rel-constants-invalid-rel-gen5:
- shard-snb: INCOMPLETE [fdo#105411] -> PASS
* igt@i915_suspend@fence-restore-untiled:
- shard-apl: DMESG-WARN [fdo#108566] -> PASS
* igt@kms_color@pipe-b-legacy-gamma:
- shard-apl: FAIL [fdo#104782] -> PASS
* igt@kms_cursor_crc@cursor-128x128-sliding:
- shard-apl: FAIL [fdo#103232] -> PASS +2
* igt@kms_cursor_crc@cursor-size-change:
- shard-glk: FAIL [fdo#103232] -> PASS +2
* igt@kms_flip@2x-flip-vs-modeset:
- shard-hsw: DMESG-WARN [fdo#102614] -> PASS
* igt@kms_flip@modeset-vs-vblank-race:
- shard-apl: FAIL [fdo#103060] -> PASS
* igt@kms_plane_alpha_blend@pipe-a-constant-alpha-max:
- shard-glk: FAIL [fdo#108145] -> PASS
- shard-apl: FAIL [fdo#108145] -> PASS
* igt@kms_plane_multiple@atomic-pipe-c-tiling-none:
- shard-glk: FAIL [fdo#103166] -> PASS +2
* igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
- shard-apl: FAIL [fdo#103166] -> PASS
* igt@kms_setmode@basic:
- shard-apl: FAIL [fdo#99912] -> PASS
* igt@pm_rc6_residency@rc6-accuracy:
- shard-snb: {SKIP} [fdo#109271] -> PASS
#### Warnings ####
* igt@i915_suspend@shrink:
- shard-apl: DMESG-WARN [fdo#107886] / [fdo#109244] -> INCOMPLETE [fdo#103927] / [fdo#106886]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
[fdo#103060]: https://bugs.freedesktop.org/show_bug.cgi?id=103060
[fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
[fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
[fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
[fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
[fdo#106510]: https://bugs.freedesktop.org/show_bug.cgi?id=106510
[fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
[fdo#106886]: https://bugs.freedesktop.org/show_bug.cgi?id=106886
[fdo#107886]: https://bugs.freedesktop.org/show_bug.cgi?id=107886
[fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
[fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
[fdo#109244]: https://bugs.freedesktop.org/show_bug.cgi?id=109244
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109490]: https://bugs.freedesktop.org/show_bug.cgi?id=109490
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
Participating hosts (7 -> 4)
------------------------------
Missing (3): shard-skl shard-kbl shard-iclb
Build changes
-------------
* IGT: IGT_4802 -> IGTPW_2329
CI_DRM_5518: 2369fd28d3a46b865f6d4f1d309a4c6b7b4e6d93 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_2329: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2329/
IGT_4802: 4049adf01014af077df2174def4fadf7cecb066e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2329/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/3] i915/gem_exec_schedule: Measure semaphore power consumption
2019-01-31 16:17 ` [igt-dev] [PATCH i-g-t 3/3] i915/gem_exec_schedule: Measure semaphore power consumption Chris Wilson
@ 2019-04-03 1:28 ` Ashutosh Dixit
2019-04-03 6:34 ` Chris Wilson
0 siblings, 1 reply; 7+ messages in thread
From: Ashutosh Dixit @ 2019-04-03 1:28 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev, intel-gfx
On Thu, 31 Jan 2019 08:17:17 -0800, Chris Wilson wrote:
>
> How much energy does spinning on a semaphore consume relative to plain
> old spinning?
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
> tests/i915/gem_exec_schedule.c | 72 +++++++++++++++++++++++++++++++++-
> 1 file changed, 71 insertions(+), 1 deletion(-)
>
> diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
> index 0462ce84f..184ceb7d6 100644
> --- a/tests/i915/gem_exec_schedule.c
> +++ b/tests/i915/gem_exec_schedule.c
> @@ -29,9 +29,10 @@
> #include <signal.h>
>
> #include "igt.h"
> -#include "igt_vgem.h"
> +#include "igt_gpu_power.h"
> #include "igt_rand.h"
> #include "igt_sysfs.h"
> +#include "igt_vgem.h"
> #include "i915/gem_ring.h"
>
> #define LO 0
> @@ -1191,6 +1192,65 @@ static void test_pi_ringfull(int fd, unsigned int engine)
> munmap(result, 4096);
> }
>
> +static void measure_semaphore_power(int i915)
> +{
> + struct gpu_power power;
> + unsigned int engine, signaler;
> +
> + igt_require(gpu_power_open(&power) == 0);
> +
> + for_each_physical_engine(i915, signaler) {
> + struct gpu_power_sample s_spin[2];
> + struct gpu_power_sample s_sema[2];
> + double baseline, total;
> + int64_t jiffie = 1;
> + igt_spin_t *spin;
> +
> + spin = __igt_spin_batch_new(i915,
> + .engine = signaler,
> + .flags = IGT_SPIN_POLL_RUN);
> + gem_wait(i915, spin->handle, &jiffie); /* waitboost */
> + igt_assert(spin->running);
> + igt_spin_busywait_until_running(spin);
> +
> + gpu_power_read(&power, &s_spin[0]);
> + usleep(100*1000);
> + gpu_power_read(&power, &s_spin[1]);
> +
> + /* Add a waiter to each engine */
> + for_each_physical_engine(i915, engine) {
>
See the following warning now as a result of this patch, most likely the
code is incorrect too due to the shadowed variable:
ninja: Entering directory `build'
[182/621] Compiling C object 'tests/59830eb@@gem_exec_schedule@exe/i915_gem_exec_schedule.c.o'.
In file included from ../lib/igt.h:40,
from ../tests/i915/gem_exec_schedule.c:31:
../tests/i915/gem_exec_schedule.c: In function ‘measure_semaphore_power’:
../lib/igt_gt.h:84:44: warning: declaration of ‘e__’ shadows a previous local [-Wshadow]
for (const struct intel_execution_engine *e__ = intel_execution_engines;\
^~~
../tests/i915/gem_exec_schedule.c:1316:3: note: in expansion of macro ‘for_each_physical_engine’
for_each_physical_engine(i915, engine) {
^~~~~~~~~~~~~~~~~~~~~~~~
../lib/igt_gt.h:84:44: note: shadowed declaration is here
for (const struct intel_execution_engine *e__ = intel_execution_engines;\
^~~
../tests/i915/gem_exec_schedule.c:1297:2: note: in expansion of macro ‘for_each_physical_engine’
for_each_physical_engine(i915, signaler) {
^~~~~~~~~~~~~~~~~~~~~~~~
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/3] i915/gem_exec_schedule: Measure semaphore power consumption
2019-04-03 1:28 ` Ashutosh Dixit
@ 2019-04-03 6:34 ` Chris Wilson
0 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2019-04-03 6:34 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: igt-dev, intel-gfx
Quoting Ashutosh Dixit (2019-04-03 02:28:35)
> On Thu, 31 Jan 2019 08:17:17 -0800, Chris Wilson wrote:
> >
> > How much energy does spinning on a semaphore consume relative to plain
> > old spinning?
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > ---
> > tests/i915/gem_exec_schedule.c | 72 +++++++++++++++++++++++++++++++++-
> > 1 file changed, 71 insertions(+), 1 deletion(-)
> >
> > diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
> > index 0462ce84f..184ceb7d6 100644
> > --- a/tests/i915/gem_exec_schedule.c
> > +++ b/tests/i915/gem_exec_schedule.c
> > @@ -29,9 +29,10 @@
> > #include <signal.h>
> >
> > #include "igt.h"
> > -#include "igt_vgem.h"
> > +#include "igt_gpu_power.h"
> > #include "igt_rand.h"
> > #include "igt_sysfs.h"
> > +#include "igt_vgem.h"
> > #include "i915/gem_ring.h"
> >
> > #define LO 0
> > @@ -1191,6 +1192,65 @@ static void test_pi_ringfull(int fd, unsigned int engine)
> > munmap(result, 4096);
> > }
> >
> > +static void measure_semaphore_power(int i915)
> > +{
> > + struct gpu_power power;
> > + unsigned int engine, signaler;
> > +
> > + igt_require(gpu_power_open(&power) == 0);
> > +
> > + for_each_physical_engine(i915, signaler) {
> > + struct gpu_power_sample s_spin[2];
> > + struct gpu_power_sample s_sema[2];
> > + double baseline, total;
> > + int64_t jiffie = 1;
> > + igt_spin_t *spin;
> > +
> > + spin = __igt_spin_batch_new(i915,
> > + .engine = signaler,
> > + .flags = IGT_SPIN_POLL_RUN);
> > + gem_wait(i915, spin->handle, &jiffie); /* waitboost */
> > + igt_assert(spin->running);
> > + igt_spin_busywait_until_running(spin);
> > +
> > + gpu_power_read(&power, &s_spin[0]);
> > + usleep(100*1000);
> > + gpu_power_read(&power, &s_spin[1]);
> > +
> > + /* Add a waiter to each engine */
> > + for_each_physical_engine(i915, engine) {
> >
> See the following warning now as a result of this patch, most likely the
> code is incorrect too due to the shadowed variable:
Code is correct. Warning is just a warning that we need new iterators.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-04-03 6:34 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-31 16:17 [igt-dev] [PATCH i-g-t 1/3] lib/i915: Pretty print HW semaphores Chris Wilson
2019-01-31 16:17 ` [igt-dev] [PATCH i-g-t 2/3] lib: Add GPU power measurement Chris Wilson
2019-01-31 16:17 ` [igt-dev] [PATCH i-g-t 3/3] i915/gem_exec_schedule: Measure semaphore power consumption Chris Wilson
2019-04-03 1:28 ` Ashutosh Dixit
2019-04-03 6:34 ` Chris Wilson
2019-01-31 16:41 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/3] lib/i915: Pretty print HW semaphores Patchwork
2019-02-01 0:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox