MAINTAINERS | 1 NEWS | 43 benchmarks/.gitignore | 3 benchmarks/Android.mk | 5 benchmarks/Makefile.am | 1 benchmarks/Makefile.sources | 7 benchmarks/ewma.h | 71 benchmarks/gem_busy.c | 16 benchmarks/gem_exec_trace.c | 447 +++- benchmarks/gem_exec_tracer.c | 241 +- benchmarks/gem_latency.c | 27 benchmarks/gem_wsim.c | 2273 ++++++++++++++++++++++++ benchmarks/ilog2.h | 104 + benchmarks/wsim/README | 112 + benchmarks/wsim/media_17i7.wsim | 7 benchmarks/wsim/media_19.wsim | 10 benchmarks/wsim/media_1n2_480p.wsim | 9 benchmarks/wsim/media_1n2_asy.wsim | 9 benchmarks/wsim/media_1n3_480p.wsim | 13 benchmarks/wsim/media_1n3_asy.wsim | 13 benchmarks/wsim/media_1n4_480p.wsim | 17 benchmarks/wsim/media_1n4_asy.wsim | 17 benchmarks/wsim/media_1n5_480p.wsim | 21 benchmarks/wsim/media_1n5_asy.wsim | 21 benchmarks/wsim/media_load_balance_17i7.wsim | 7 benchmarks/wsim/media_load_balance_19.wsim | 10 benchmarks/wsim/media_load_balance_4k12u7.wsim | 4 benchmarks/wsim/media_load_balance_fhd26u7.wsim | 25 benchmarks/wsim/media_load_balance_hd01.wsim | 25 benchmarks/wsim/media_load_balance_hd06mp2.wsim | 4 benchmarks/wsim/media_load_balance_hd12.wsim | 4 benchmarks/wsim/media_load_balance_hd17i4.wsim | 7 benchmarks/wsim/media_mfe2_480p.wsim | 9 benchmarks/wsim/media_mfe3_480p.wsim | 13 benchmarks/wsim/media_mfe4_480p.wsim | 17 benchmarks/wsim/media_nn_1080p.wsim | 5 benchmarks/wsim/media_nn_1080p_s1.wsim | 8 benchmarks/wsim/media_nn_1080p_s2.wsim | 10 benchmarks/wsim/media_nn_1080p_s3.wsim | 11 benchmarks/wsim/media_nn_480p.wsim | 5 benchmarks/wsim/vcs1.wsim | 26 benchmarks/wsim/vcs_balanced.wsim | 26 configure.ac | 26 debian/changelog | 8 debian/upstream/signing-key.asc | 51 debian/watch | 2 demos/Android.mk | 3 lib/Android.mk | 7 lib/Makefile.am | 7 lib/Makefile.sources | 10 lib/drm_mm_selftests.h | 24 lib/drmtest.c | 17 lib/drmtest.h | 1 lib/i915_live_selftests.h | 19 lib/i915_mock_selftests.h | 20 lib/i915_pciids.h | 24 lib/igt.h | 2 lib/igt_aux.c | 47 lib/igt_aux.h | 9 lib/igt_chamelium.h | 3 lib/igt_core.c | 26 lib/igt_core.h | 1 lib/igt_debugfs.c | 410 ++-- lib/igt_debugfs.h | 34 lib/igt_dummyload.c | 85 lib/igt_dummyload.h | 4 lib/igt_gt.c | 81 lib/igt_gt.h | 5 lib/igt_kmod.c | 55 lib/igt_kmod.h | 14 lib/igt_kms.c | 341 ++- lib/igt_kms.h | 8 lib/igt_rand.c | 19 lib/igt_rand.h | 2 lib/igt_sysfs.c | 6 lib/intel_device_info.c | 11 lib/intel_io.h | 2 lib/intel_mmio.c | 4 lib/intel_os.c | 9 lib/ioctl_wrappers.c | 53 lib/ioctl_wrappers.h | 6 lib/sw_sync.c | 8 lib/tests/.gitignore | 1 lib/tests/Android.mk | 4 lib/tests/Makefile.sources | 1 lib/tests/igt_hdmi_inject.c | 96 + overlay/Makefile.am | 2 overlay/gpu-perf.c | 26 overlay/gpu-perf.h | 1 overlay/gpu-top.c | 3 overlay/overlay.c | 5 scripts/Makefile.am | 2 scripts/media-bench.pl | 609 ++++++ scripts/trace.pl | 1086 +++++++++++ tests/Android.mk | 9 tests/Makefile.am | 37 tests/Makefile.sources | 256 +- tests/amdgpu/amd_basic.c | 1427 +++++++++++++++ tests/amdgpu/amd_cs_nop.c | 245 ++ tests/amdgpu/amd_prime.c | 430 ++++ tests/chamelium.c | 20 tests/drm_import_export.c | 4 tests/drm_mm.c | 17 tests/drm_vma_limiter_cached.c | 1 tests/drv_hangman.c | 7 tests/drv_missed_irq.c | 80 tests/drv_module_reload.c | 17 tests/drv_selftest.c | 25 tests/drv_suspend.c | 8 tests/feat_profile.json | 111 + tests/gem_bad_blit.c | 1 tests/gem_bad_reloc.c | 4 tests/gem_busy.c | 31 tests/gem_caching.c | 1 tests/gem_concurrent_all.c | 6 tests/gem_cs_prefetch.c | 10 tests/gem_cs_tlb.c | 2 tests/gem_ctx_create.c | 22 tests/gem_ctx_thrash.c | 3 tests/gem_double_irq_loop.c | 1 tests/gem_eio.c | 2 tests/gem_exec_async.c | 9 tests/gem_exec_await.c | 393 ++++ tests/gem_exec_blt.c | 2 tests/gem_exec_capture.c | 179 + tests/gem_exec_fence.c | 306 ++- tests/gem_exec_flush.c | 30 tests/gem_exec_gttfill.c | 19 tests/gem_exec_latency.c | 5 tests/gem_exec_nop.c | 183 + tests/gem_exec_parallel.c | 16 tests/gem_exec_parse.c | 2 tests/gem_exec_reloc.c | 173 + tests/gem_exec_schedule.c | 72 tests/gem_exec_store.c | 127 + tests/gem_exec_suspend.c | 25 tests/gem_exec_whisper.c | 68 tests/gem_hangcheck_forcewake.c | 1 tests/gem_media_fill.c | 2 tests/gem_mmap_gtt.c | 21 tests/gem_mmap_wc.c | 24 tests/gem_mocs_settings.c | 14 tests/gem_partial_pwrite_pread.c | 1 tests/gem_persistent_relocs.c | 3 tests/gem_pipe_control_store_loop.c | 2 tests/gem_ppgtt.c | 16 tests/gem_pread_after_blit.c | 1 tests/gem_pwrite.c | 6 tests/gem_read_read_speed.c | 1 tests/gem_reloc_vs_gpu.c | 2 tests/gem_render_linear_blits.c | 3 tests/gem_render_tiled_blits.c | 3 tests/gem_ringfill.c | 11 tests/gem_seqno_wrap.c | 77 tests/gem_set_tiling_vs_blt.c | 1 tests/gem_shrink.c | 43 tests/gem_softpin.c | 1 tests/gem_spin_batch.c | 47 tests/gem_storedw_batches_loop.c | 1 tests/gem_storedw_loop.c | 13 tests/gem_sync.c | 16 tests/gem_tiled_pread_pwrite.c | 69 tests/gem_tiled_swapping.c | 9 tests/gem_unref_active_buffers.c | 1 tests/gem_userptr_blits.c | 90 tests/gem_workarounds.c | 17 tests/gem_write_read_ring_switch.c | 1 tests/igt_command_line.sh | 52 tests/intel-ci/Makefile.am | 7 tests/intel-ci/README | 15 tests/intel-ci/extended.testlist | 1839 +++++++++++++++++++ tests/intel-ci/fast-feedback.testlist | 7 tests/intel-ci/generic.testlist | 125 + tests/intel-ci/meta.testlist | 7 tests/kms_atomic.c | 82 tests/kms_atomic_transition.c | 4 tests/kms_ccs.c | 4 tests/kms_chv_cursor_fail.c | 4 tests/kms_concurrent.c | 429 ++++ tests/kms_crtc_background_color.c | 4 tests/kms_cursor_crc.c | 12 tests/kms_cursor_legacy.c | 130 - tests/kms_draw_crc.c | 2 tests/kms_fbc_crc.c | 8 tests/kms_fbcon_fbt.c | 44 tests/kms_flip.c | 2 tests/kms_flip_tiling.c | 10 tests/kms_frontbuffer_tracking.c | 50 tests/kms_hdmi_inject.c | 272 ++ tests/kms_invalid_dotclock.c | 6 tests/kms_mmap_write_crc.c | 4 tests/kms_mmio_vs_cs_flip.c | 8 tests/kms_pipe_color.c | 5 tests/kms_pipe_crc_basic.c | 89 tests/kms_plane.c | 4 tests/kms_plane_lowres.c | 14 tests/kms_plane_multiple.c | 4 tests/kms_plane_scaling.c | 4 tests/kms_properties.c | 64 tests/kms_psr_sink_crc.c | 19 tests/kms_pwrite_crc.c | 4 tests/kms_render.c | 1 tests/kms_rotation_crc.c | 273 +- tests/kms_setmode.c | 24 tests/kms_sink_crc_basic.c | 44 tests/kms_universal_plane.c | 18 tests/kms_vblank.c | 185 + tests/meta_test.c | 149 + tests/perf.c | 36 tests/pm_lpsp.c | 2 tests/pm_rc6_residency.c | 52 tests/pm_rpm.c | 73 tests/pm_rps.c | 86 tests/pm_sseu.c | 33 tests/prime_busy.c | 10 tests/prime_mmap_coherency.c | 41 tests/prime_mmap_kms.c | 2 tests/prime_vgem.c | 22 tests/testdisplay_hotplug.c | 2 tests/vc4_dmabuf_poll.c | 85 tests/vgem_basic.c | 3 tools/Android.mk | 14 tools/Makefile.am | 1 tools/aubdump.c | 5 tools/intel_display_crc.c | 2 tools/intel_display_poller.c | 8 tools/intel_dp_compliance.c | 16 tools/intel_error_decode.c | 187 + tools/intel_forcewaked.c | 10 tools/intel_gpu_top.c | 8 tools/intel_guc_logger.c | 10 tools/intel_gvtg_test.c | 2 tools/intel_infoframes.c | 7 tools/intel_l3_parity.c | 4 tools/intel_l3_parity.h | 2 tools/intel_l3_udev_listener.c | 2 tools/intel_panel_fitter.c | 9 tools/intel_perf_counters.c | 2 tools/intel_reg.c | 11 tools/intel_watermark.c | 23 240 files changed, 14379 insertions(+), 2306 deletions(-)
New commits: commit 3703793c949dcc39cfc86fb2a5f51b5dcd5bdf80 Author: Jordan Justen <[email protected]> Date: Thu Jun 15 12:05:21 2017 -0700 debian: Add pgpsigurlmangle to watch file Signed-off-by: Jordan Justen <[email protected]> diff --git a/debian/changelog b/debian/changelog index ef42c07..5bfb2e9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ intel-gpu-tools (1.19-1) UNRELEASED; urgency=medium * New upstream release. * Add debian/upstream/signing-key.asc with Petri Latvala's key + * Add pgpsigurlmangle to watch file as suggested by uscan -- Jordan Justen <[email protected]> Thu, 15 Jun 2017 12:03:01 -0700 diff --git a/debian/watch b/debian/watch index 9379317..1863dd1 100644 --- a/debian/watch +++ b/debian/watch @@ -1,3 +1,3 @@ #git=git://anongit.freedesktop.org/xorg/app/intel-gpu-tools version=3 -http://xorg.freedesktop.org/archive/individual/app/intel-gpu-tools-(.*)\.tar\.gz +opts=pgpsigurlmangle=s/$/.sig/ http://xorg.freedesktop.org/archive/individual/app/intel-gpu-tools-(.*)\.tar\.gz commit 17ae3527c60ce4f615e306a2c2ea312bc98cb61d Author: Jordan Justen <[email protected]> Date: Thu Jun 15 12:17:27 2017 -0700 debian: add debian/upstream/signing-key.asc for upstream keys Signed-off-by: Jordan Justen <[email protected]> diff --git a/debian/changelog b/debian/changelog index 8ae8534..ef42c07 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ intel-gpu-tools (1.19-1) UNRELEASED; urgency=medium * New upstream release. + * Add debian/upstream/signing-key.asc with Petri Latvala's key -- Jordan Justen <[email protected]> Thu, 15 Jun 2017 12:03:01 -0700 diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc new file mode 100644 index 0000000..dd8cce7 --- /dev/null +++ b/debian/upstream/signing-key.asc @@ -0,0 +1,51 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +eBf58Dft +=MoDT +-----END PGP PUBLIC KEY BLOCK----- commit c8f305688746f0deca0998ff79b21917e3710551 Author: Jordan Justen <[email protected]> Date: Thu Jun 15 12:03:27 2017 -0700 debian: Start 1.19-1 changelog Signed-off-by: Jordan Justen <[email protected]> diff --git a/debian/changelog b/debian/changelog index 4a946a5..8ae8534 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +intel-gpu-tools (1.19-1) UNRELEASED; urgency=medium + + * New upstream release. + + -- Jordan Justen <[email protected]> Thu, 15 Jun 2017 12:03:01 -0700 + intel-gpu-tools (1.18-2) experimental; urgency=medium * Run wrap-and-sort to cleanup debian files commit d492abfbad687d3c5f343b836da4c7316a57ba77 Author: Petri Latvala <[email protected]> Date: Fri Jun 9 16:27:11 2017 +0300 Update NEWS, bump version to 1.19. Signed-off-by: Petri Latvala <[email protected]> diff --git a/NEWS b/NEWS index bb893a3..80136fa 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,46 @@ +Release 1.19 (2017-06-09) +------------------------- + +Library changes: + +- Changed debugfs handlers to open files for the DRM device in use, + for setups with more than one DRM device. (Tomeu Vizoso) + +- Added support for 4K and audio HDMI EDID injection. (Abdiel + Janulgue, Marius Vlad) + +- Added support for AMDGPU devices. (Chris Wilson) + +Tools changes: + +- intel_error_decode now automatically opens a pager. (Chris Wilson) + +- intel_error_decode now dumps the GuC firmware logs if available. + (Chris Wilson) + +Benchmark changes: + +- gem_wsim: New benchmark that simulates command submission + workloads. (Tvrtko Ursulin) + +Scripts changes: + +- trace.pl: New tool to parse i915 tracepoints for performance + analysis. (Tvrtko Ursulin) + +- media-bench.pl: New tool to programmatically analyze simulated media + workloads using gem_wsim to find the optimal load balancing + strategy. (Tvrtko Ursulin) + +Test changes: + +- Imported amdgpu tests from libdrm. (Chris Wilson) + +- Multiple other new tests. + + +And many other bug fixes and improvements. + Release 1.18 (2017-03-13) ------------------------- diff --git a/configure.ac b/configure.ac index fa0593b..0418e60 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ([2.60]) AC_INIT([intel-gpu-tools], - [1.18], + [1.19], [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI&component=IGT], [intel-gpu-tools]) commit a493e058325d5bd34a77be3a16d646031dadcdb4 Author: Petri Latvala <[email protected]> Date: Fri Jun 9 15:46:07 2017 +0300 Fix a couple of typos CLFAGS -> CFLAGS Signed-off-by: Petri Latvala <[email protected]> diff --git a/overlay/Makefile.am b/overlay/Makefile.am index 92e0bc8..5472514 100644 --- a/overlay/Makefile.am +++ b/overlay/Makefile.am @@ -4,7 +4,7 @@ endif AM_CPPFLAGS = -I. AM_CFLAGS = $(DRM_CFLAGS) $(PCIACCESS_CFLAGS) $(CWARNFLAGS) \ - $(CAIRO_CFLAGS) $(OVERLAY_CFLAGS) $(WERROR_CLFAGS) + $(CAIRO_CFLAGS) $(OVERLAY_CFLAGS) $(WERROR_CFLAGS) LDADD = $(DRM_LIBS) $(PCIACCESS_LIBS) $(CAIRO_LIBS) $(OVERLAY_LIBS) intel_gpu_overlay_SOURCES = \ diff --git a/tools/Makefile.am b/tools/Makefile.am index c1a797a..18a67ef 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -9,7 +9,7 @@ endif if HAVE_UDEV bin_PROGRAMS += intel_dp_compliance -intel_dp_compliance_CFLAGS = $(AM_CFLAGS) $(GLIB_CLFAGS) +intel_dp_compliance_CFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS) intel_dp_compliance_LDADD = $(top_builddir)/lib/libintel_tools.la $(GLIB_LIBS) endif commit 09e666d2396c4d0df362809bf5498ab61079d11e Author: Brian Starkey <[email protected]> Date: Mon Jun 5 14:28:40 2017 +0100 lib/igt_debugfs: Only use valid values in igt_crc_to_str() Not all elements in the crc array may be valid, so only use the valid ones to generate the string. Signed-off-by: Brian Starkey <[email protected]> Reviewed-by: Arkadiusz Hiler <[email protected]> diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c index f5ed3da..80f25c6 100644 --- a/lib/igt_debugfs.c +++ b/lib/igt_debugfs.c @@ -312,10 +312,11 @@ void igt_assert_crc_equal(const igt_crc_t *a, const igt_crc_t *b) */ char *igt_crc_to_string(igt_crc_t *crc) { - char buf[128]; + int i; + char buf[128] = { 0 }; - sprintf(buf, "%08x %08x %08x %08x %08x", crc->crc[0], - crc->crc[1], crc->crc[2], crc->crc[3], crc->crc[4]); + for (i = 0; i < crc->n_words; i++) + sprintf(buf + strlen(buf), "%08x ", crc->crc[i]); return strdup(buf); } commit 4bdcd335961203c07a37aaebf6c441814a6555fa Author: Brian Starkey <[email protected]> Date: Mon Jun 5 14:28:39 2017 +0100 lib/igt_debugfs: Remove igt_debugfs_t It's not used anymore, so remove it. Signed-off-by: Brian Starkey <[email protected]> Reviewed-by: Arkadiusz Hiler <[email protected]> diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c index 7584be5..f5ed3da 100644 --- a/lib/igt_debugfs.c +++ b/lib/igt_debugfs.c @@ -84,11 +84,6 @@ * General debugfs helpers */ -typedef struct { - char root[128]; - char dri_path[128]; -} igt_debugfs_t; - static bool is_mountpoint(const char *path) { char buf[strlen(path) + 4]; commit bf2a10392eaca70e18163dec40e8bbfcdb54c8ba Author: Brian Starkey <[email protected]> Date: Mon Jun 5 14:28:37 2017 +0100 lib/igt_kms: Fix erroneous assert In trying to fix igt_display_init() for devices without cursors, I actually made matters worse. Fix the assert. Fixes: 545aa3398223 lib/igt_kms: Remove redundant cursor code Signed-off-by: Brian Starkey <[email protected]> Reviewed-by: Arkadiusz Hiler <[email protected]> diff --git a/lib/igt_kms.c b/lib/igt_kms.c index c77716b..5e2ef97 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -1794,11 +1794,11 @@ void igt_display_init(igt_display_t *display, int drm_fd) */ igt_assert_eq(pipe->plane_primary, 0); - /* - * There should be no gaps. If there is, something happened - * which we can't handle (e.g. all planes are cursors). - */ - igt_assert_eq(p, last_plane); + /* Check that we filled every slot exactly once */ + if (display->has_cursor_plane) + igt_assert_eq(p, last_plane); + else + igt_assert_eq(p, n_planes); pipe->n_planes = n_planes; commit b5a899316447a357e35b1cd095bdcae98fff5bcf Author: Petri Latvala <[email protected]> Date: Fri Jun 9 14:36:19 2017 +0300 intel-ci: Document the public CI results web page Signed-off-by: Petri Latvala <[email protected]> Reviewed-by: Arkadiusz Hiler <[email protected]> diff --git a/tests/intel-ci/README b/tests/intel-ci/README index ae92460..d17922e 100644 --- a/tests/intel-ci/README +++ b/tests/intel-ci/README @@ -24,6 +24,9 @@ fast-feedback.testlist Fast-feedback is the testlist that is run for Patchwork and Trybot testing. It is also run on various drm-intel-* branches. +The results of CI runs on drm-tip can be found in +https://intel-gfx-ci.01.org/CI/ + Time limit: Full run must complete in 15 minutes on all tested platforms. commit 8648655f6f00119f5546f254ddedee6621c8a1de Author: Petri Latvala <[email protected]> Date: Fri Jun 9 14:32:17 2017 +0300 intel-ci: Have the directory included in the distributed tarballs Signed-off-by: Petri Latvala <[email protected]> Reviewed-by: Arkadiusz Hiler <[email protected]> diff --git a/configure.ac b/configure.ac index 5f80b08..fa0593b 100644 --- a/configure.ac +++ b/configure.ac @@ -360,6 +360,7 @@ AC_CONFIG_FILES([ man/Makefile scripts/Makefile tests/Makefile + tests/intel-ci/Makefile tools/Makefile tools/null_state_gen/Makefile tools/registers/Makefile diff --git a/tests/Makefile.am b/tests/Makefile.am index 873850d..b051364 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,5 +1,7 @@ include Makefile.sources +SUBDIRS = intel-ci + if HAVE_LIBDRM_AMDGPU TESTS_progs += $(AMDGPU_TESTS) endif diff --git a/tests/intel-ci/Makefile.am b/tests/intel-ci/Makefile.am new file mode 100644 index 0000000..9fb9744 --- /dev/null +++ b/tests/intel-ci/Makefile.am @@ -0,0 +1,7 @@ +EXTRA_DIST = \ + extended.testlist \ + fast-feedback.testlist \ + generic.testlist \ + meta.testlist \ + README \ + $(NULL) commit bacc37beac8ced1fb45374608080c842bdbd6ce4 Author: Petri Latvala <[email protected]> Date: Fri Mar 17 14:38:58 2017 +0200 tests/Makefile.am: Only ignore generated gitignore in gitignore When generating the .gitignore file, use /.gitignore instead of .gitignore to not have it apply to subdirectories. Signed-off-by: Petri Latvala <[email protected]> Reviewed-by: Arkadiusz Hiler <[email protected]> diff --git a/tests/Makefile.am b/tests/Makefile.am index 9a1c770..873850d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -52,7 +52,7 @@ dist_pkgdata_DATA = \ all-local: .gitignore .gitignore: Makefile.sources - @echo "$(pkglibexec_PROGRAMS) $(HANG) test-list.txt test-list-full.txt .gitignore" | sed 's/\s\+/\n/g' | sort > $@ + @echo "$(pkglibexec_PROGRAMS) $(HANG) test-list.txt test-list-full.txt /.gitignore" | sed 's/\s\+/\n/g' | sort > $@ pkgdata_DATA = test-list.txt test-list-full.txt commit 5b13b8f91cc7a6e274d00890a9f0659b52e9ff45 Author: Petri Latvala <[email protected]> Date: Fri Mar 17 15:07:56 2017 +0200 intel-ci: Add comments on test order to fast-feedback.testlist Document the test ordering choices in fast-feedback.testlist. For comments in testlists, piglit commit commit 0c535186d624071098c10003fdafe8f475ed9ae7 Author: Petri Latvala <[email protected]> Date: Wed Feb 1 12:57:45 2017 +0200 framework/programs/run.py: Allow comments in test-list files. is required. Signed-off-by: Petri Latvala <[email protected]> Reviewed-by: Arkadiusz Hiler <[email protected]> diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist index 5ffa2ce..ce7a41f 100644 --- a/tests/intel-ci/fast-feedback.testlist +++ b/tests/intel-ci/fast-feedback.testlist @@ -1,3 +1,5 @@ +# Keep alphabetically sorted by default + igt@core_auth@basic-auth igt@core_prop_blob@basic igt@drv_getparams_basic@basic-eu-total @@ -270,6 +272,11 @@ igt@vgem_basic@dmabuf-mmap igt@vgem_basic@mmap igt@vgem_basic@second-client igt@vgem_basic@sysfs + +# All tests that do module unloading and reloading are executed last. +# They will sometimes reveal issues of earlier tests leaving the +# driver in a broken state that is not otherwise noticed in that test. + igt@vgem_basic@unload igt@drv_module_reload@basic-reload igt@drv_module_reload@basic-no-display commit b642e1d78fd1ad70cf6b726aae26150a02343c40 Author: Radoslaw Szwichtenberg <[email protected]> Date: Wed Jun 7 16:29:59 2017 +0200 tests/pm_rps: Replace custom load function with dummy load Replaced custom load implementation with lib counterpart. Cc: Chris Wilson <[email protected]> Cc: Arkadiusz Hiler <[email protected]> Signed-off-by: Radoslaw Szwichtenberg <[email protected]> Reviewed-by: Arkadiusz Hiler <[email protected]> diff --git a/tests/pm_rps.c b/tests/pm_rps.c index 4a21de4..f0455e7 100644 --- a/tests/pm_rps.c +++ b/tests/pm_rps.c @@ -560,58 +560,21 @@ static void reset_gpu(void) close(fd); } -static uint32_t *make_busy(int fd, uint32_t handle) +static void boost_freq(int fd, int *boost_freqs) { - const int gen = intel_gen(intel_get_drm_devid(fd)); - struct drm_i915_gem_exec_object2 obj; - struct drm_i915_gem_relocation_entry reloc; - struct drm_i915_gem_execbuffer2 execbuf; - uint32_t *batch; - int i; + int64_t timeout = 1; + int ring = -1; + igt_spin_t *load; - memset(&execbuf, 0, sizeof(execbuf)); - execbuf.buffers_ptr = (uintptr_t)&obj; - execbuf.buffer_count = 1; - - memset(&obj, 0, sizeof(obj)); - obj.handle = handle; - - obj.relocs_ptr = (uintptr_t)&reloc; - obj.relocation_count = 1; - memset(&reloc, 0, sizeof(reloc)); - - batch = gem_mmap__wc(fd, obj.handle, 0, 4096, PROT_WRITE); - gem_set_domain(fd, obj.handle, - I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT); - - reloc.target_handle = obj.handle; /* recurse */ - reloc.presumed_offset = 0; - reloc.offset = sizeof(uint32_t); - reloc.delta = 0; - reloc.read_domains = I915_GEM_DOMAIN_COMMAND; - reloc.write_domain = 0; - - i = 0; - batch[i] = MI_BATCH_BUFFER_START; - if (gen >= 8) { - batch[i] |= 1 << 8 | 1; - batch[++i] = 0; - batch[++i] = 0; - } else if (gen >= 6) { - batch[i] |= 1 << 8; - batch[++i] = 0; - } else { - batch[i] |= 2 << 6; - batch[++i] = 0; - if (gen < 4) { - batch[i] |= 1; - reloc.delta = 1; - } - } - i++; + load = igt_spin_batch_new(fd, ring, 0); - gem_execbuf(fd, &execbuf); - return batch; + /* Waiting will grant us a boost to maximum */ + gem_wait(fd, load->handle, &timeout); + + read_freqs(boost_freqs); + dump(boost_freqs); + + igt_spin_batch_free(fd, load); } static void waitboost(bool reset) @@ -619,15 +582,9 @@ static void waitboost(bool reset) int pre_freqs[NUMFREQ]; int boost_freqs[NUMFREQ]; int post_freqs[NUMFREQ]; - uint32_t *batch, handle; - int64_t timeout = 1; int fd = drm_open_driver(DRIVER_INTEL); - /* When we wait upon the GPU, we want to temporarily boost it - * to maximum. - */ - load_helper_run(LOW); igt_debug("Apply low load...\n"); @@ -640,15 +597,10 @@ static void waitboost(bool reset) sleep(1); } - igt_debug("Wait for gpu...\n"); - handle = gem_create(fd, 4096); - batch = make_busy(fd, handle); - gem_wait(fd, handle, &timeout); - read_freqs(boost_freqs); - dump(boost_freqs); - *batch = MI_BATCH_BUFFER_END; - munmap(batch, 4096); - gem_close(fd, handle); + /* When we wait upon the GPU, we want to temporarily boost it + * to maximum. + */ + boost_freq(fd, boost_freqs); igt_debug("Apply low load again...\n"); sleep(1); commit 9623c628c54482270f5e4f30df69c1954b105e29 Author: Tvrtko Ursulin <[email protected]> Date: Fri Jun 9 11:51:57 2017 +0100 media-bench.pl: Add automatic per-client target mode It is useful to be able to specify wps target relative to single client performance when evaluating multiple workloads. Signed-off-by: Tvrtko Ursulin <[email protected]> diff --git a/scripts/media-bench.pl b/scripts/media-bench.pl index 13e5fdc..0956ef0 100755 --- a/scripts/media-bench.pl +++ b/scripts/media-bench.pl @@ -40,6 +40,7 @@ my $gt2 = 0; my $show_cmds = 0; my $realtime_target = 0; my $wps_target = 0; +my $wps_target_param = 0; my $w_direct; my $balancer; my $nop; @@ -294,7 +295,8 @@ sub find_saturation_point $r = int($rr * ($client_target_s / $time)); } elsif ($c == 1) { $swps = $wps; - return ($c, $wps, $swps) if $wcnt > 1; + return ($c, $wps, $swps) if $wcnt > 1 or + ($wps_target_param < 0 and $wps_target == 0); } $last_wps = $wps; @@ -328,6 +330,8 @@ Supported options: -i pct Engine idleness tolerance. -R wps Run workloads in the real-time mode at wps rate. -T wps Calibrate up to wps/client target instead of GPU saturation. + Negative values set the target based on the single client + performance where target = single-client-wps / -N. -w str Pass-through to gem_wsim. Overrides normal workload selection. ENDHELP exit 0; @@ -348,6 +352,7 @@ $tolerance = $opts{'t'} / 100.0 if defined $opts{'t'}; $idle_tolerance_pct = $opts{'i'} if defined $opts{'i'}; $realtime_target = $opts{'R'} if defined $opts{'R'}; $wps_target = $opts{'T'} if defined $opts{'T'}; +$wps_target_param = $wps_target; $w_direct = $opts{'w'} if defined $opts{'w'}; @workloads = ($w_direct ) if defined $w_direct; @@ -437,15 +442,27 @@ foreach my $wrk (@workloads) { print " No balancing: "; } + $wps_target = 0 if $wps_target_param < 0; + ($c, $w, $s) = find_saturation_point($wrk, $r, 0, (@args, @xargs)); + if ($wps_target_param < 0) { + $wps_target = $s / -$wps_target_param; + + ($c, $w, $s) = + find_saturation_point($wrk, $r, + 0, + (@args, + @xargs)); + } + $wps{$bid} = $w; $cwps{$bid} = $s; - if ($realtime_target > 0 || $wps_target > 0) { + if ($realtime_target > 0 || $wps_target_param > 0) { $mwps{$bid} = $w * $c; } else { $mwps{$bid} = $w + $s; commit aa57274568158dcf5b4726b4398bf448fea79855 Author: Tvrtko Ursulin <[email protected]> Date: Fri Jun 9 11:51:03 2017 +0100 trace.pl: Handle multi-day uptime Handle multi-day uptime when parsing tracepoint timestamps. Signed-off-by: Tvrtko Ursulin <[email protected]> diff --git a/scripts/trace.pl b/scripts/trace.pl index 1c7b3fa..aed9b20 100755 --- a/scripts/trace.pl +++ b/scripts/trace.pl @@ -400,7 +400,7 @@ sub sanitize_ctx sub ts { my ($us) = @_; - my ($h, $m, $s); + my ($d, $h, $m, $s); $s = int($us / 1000000); $us = $us % 1000000; @@ -411,7 +411,11 @@ sub ts $h = int($m / 60); $m = $m % 60; - return sprintf('2017-01-01 %02u:%02u:%02u.%06u', int($h), int($m), int($s), int($us)); + $d = 1 + int($h / 24); + $h = $h % 24; + + return sprintf('2017-01-%02u %02u:%02u:%02u.%06u', + int($d), int($h), int($m), int($s), int($us)); } # Main input loop - parse lines and build the internal representation of the commit a663424e2a5ebf3c8e9ab743143e0856f978f7d6 Author: Chris Wilson <[email protected]> Date: Wed Jun 7 11:32:50 2017 +0100 Revert "kms_cursor_legacy: Add a burner thread to make basic-busy-* pass." This reverts commit 7c8703fb02b248c2bcf9756bba8812bcfe7ed5d3. If we expect it to fail until we find a solution, let the hw fail and continue to track the known failure in CI/bugs. Cc: Martin Peres <[email protected]> Acked-by: Martin Peres <[email protected]> diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c index 2eb1d1b..ac05ca5 100644 --- a/tests/kms_cursor_legacy.c +++ b/tests/kms_cursor_legacy.c @@ -618,23 +618,9 @@ static void basic_flip_cursor(igt_display_t *display, do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[0]); busy = NULL; - if (flags & BASIC_BUSY) { + if (flags & BASIC_BUSY) busy = make_fb_busy(display->drm_fd, &fb_info); - /* - * Prevent going into C3 or higher state - * or we may miss vblank interrupts on SNB. - */ - igt_fork(child, 1) { - struct sched_param parm = { .sched_priority = 0 }; - - igt_assert(sched_setscheduler(0, SCHED_IDLE, &parm) == 0); - - while (*busy != MI_BATCH_BUFFER_END) - sched_yield(); - } - } -

