- Nov 19, 2019
-
-
Arkadiusz Hiler authored
Turns out that `readlink()` does not NULL-terminate the string and since it resides on the stack we may end up with some junk: `/proc/self/exe point to /opt/igt/libexec/igt-gpu-tools/tools_test7<CD>\t<8A>^?` That in turn confuses `dirname()` and we end up doing `chdir("/")`, which explain the sporadic failures of this test where it was not able to locate the tools. Let's zero out the variable first and allow `readlink()` to write at most `sizeof()-1` bytes to it, so it is always properly terminated. Cc: Petri Latvala <petri.latvala@intel.com> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Issue: #12 Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- Nov 18, 2019
-
-
José Roberto de Souza authored
i915_pm_dc have implemented a function to check if PSR2 is enabled, that may be util to future tests so move it to PSR lib. Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by:
José Roberto de Souza <jose.souza@intel.com>
-
José Roberto de Souza authored
has_runtime_pm was not used outside of igt_fixture also no need to print this info, if not supported IGT skip log will contain the line that was not meet. Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by:
José Roberto de Souza <jose.souza@intel.com>
-
José Roberto de Souza authored
Also moving the sink check to igt_fixture as it do not change overtime. Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by:
José Roberto de Souza <jose.souza@intel.com>
-
José Roberto de Souza authored
Writing 0xf to i915_edp_psr_debug is expected to have -EINVAL returned in newer kernels but this error actually comes from errno not from the return of write()(check writeN()), so unseting the expected errno so this do not cause tests to skips. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=112257 Cc: Jeevan B <jeevan.b@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by:
José Roberto de Souza <jose.souza@intel.com>
-
Chris Wilson authored
They have lived past their usefulness as now we frequently lose vital debug information because we are spamming unrelated GEM traces. We can add the spam directly to GEM_BUG_ON(), and enable it ourselves if we truly need the trace-on-oops. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: Martin Peres <martin.peres@linux.intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Acked-by:
Petri Latvala <petri.latvala@intel.com>
-
Add GEN12 CCS format modifiers for render compression. Render compression is not supported for 90/270 rotation. v2: Added new subtests for each format modifier. v3: Add IGT description for each subtest (GitLab) v4: Fix errorneous subtest execution and listing v5: Fix AUX surface units for GEN12 (Imre) Bspec: 49252 Signed-off-by:
Mika Kahola <mika.kahola@intel.com> [Keep existing subtest names.] Reviewed-by:
Imre Deak <imre.deak@intel.com> Signed-off-by:
Imre Deak <imre.deak@intel.com>
-
Update tile sizes for GEN12 CCS. BSpec: 47709 v2: Realign main and aux surfaces (Imre) Signed-off-by:
Mika Kahola <mika.kahola@intel.com> Reviewed-by:
Imre Deak <imre.deak@intel.com> Signed-off-by:
Imre Deak <imre.deak@intel.com>
-
Gen-12 has a new compression format for render compression. For this, a new modifier is needed to indicate that. Signed-off-by:
Mika Kahola <mika.kahola@intel.com> Reviewed-by:
Radhakrishna Sripada <radhakrishna.sripada@intel.com> Signed-off-by:
Imre Deak <imre.deak@intel.com>
-
- Nov 16, 2019
-
-
Chris Wilson authored
Our worst case is blocking on a infinite batch, as the hangcheck allows it to remain in place indefinitely. This is too slow for CI as it only fails via a lengthy timeout. However, for our purposes a fail due to hangcheck is an equally good indicator of the bug, so use a hostile spinner to provoke hangcheck. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Acked-by:
Mika Kuoppala <mika.kuoppala@intel.com>
-
Chris Wilson authored
Since the buffer is always valid up to the next page, we can just round up to the oword boundary. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Acked-by:
Mika Kuoppala <mika.kuoppala@intel.com>
-
- Nov 15, 2019
-
-
Chris Wilson authored
Although a virtual engine itself has no hang detection; that is on the underlying physical engines, it does provide a unique means for clients to try and break the system. Try and break it before they do. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
Petri Latvala authored
Signed-off-by:
Petri Latvala <petri.latvala@intel.com> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Petri Latvala authored
If binary 'bin' has a subtest 'sub', which has dynamic subtests 'foo' and 'bar', results.json will now have "subtests" by the names igt@bin@sub@foo and igt@bin@sub@bar, with data as expected of normal subtests. Signed-off-by:
Petri Latvala <petri.latvala@intel.com> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Petri Latvala authored
v2: Also test that calling igt_describe in a dynamic context asserts Signed-off-by:
Petri Latvala <petri.latvala@intel.com> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Petri Latvala authored
Signed-off-by:
Petri Latvala <petri.latvala@intel.com> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Petri Latvala authored
Dynamic subsubtests, or subtests of subtests, are individual pieces of tests that are not statically available all the time. A good example of a need for a dynamic subsubtest is i915 engine listing: A normal subtest for each engine class ("bsd"), and a dynamic subsubtest for each instance ("bsd0", "bsd2", etc). Or a normal subtest for an operation with a dynamic subsubtest for every engine there is. Another example is dynamic subsubtests for pipes: Instead of using foreach_pipe_static, make one subtest and use foreach_pipe with dynamic subsubtests for each pipe. v2: Rebase and adapt to igt_describe changes v3: Rename to igt_subtest_with_dynamic_subsubtests & igt_dynamic_subsubtest, better docs, make igt_describe fail loudly if it's used in an impossible context. v4: Mention dynamic blocks in the warning for longjmp in core docs. Signed-off-by:
Petri Latvala <petri.latvala@intel.com> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
If cmd parser is mandatory, batch can't be modified post execbuf. Some tests rely on modifying batch post execbuf. Give those tests a method to query if those modifications ever reach the actual engine command stream. v2: pull in the test changes, doh v3: class based query v4: rebase Signed-off-by:
Mika Kuoppala <mika.kuoppala@intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- Nov 14, 2019
-
-
Chris Wilson authored
With GPU relocations we avoid blocking inside execbuf and prevent priority inversions where a low priority client can cause a denial of service to higher priority clients. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Acked-by:
Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
For testing blitter engine command parser on gen9. v2: bad jump offset v3: rebase v4: improve bb start and subcase it v5: fix presumed offsets (Jon) v6: name, remove spurious gem_syncs (Chris) v7: jump further backwards (Daniel), ctx_param_engines (Chris) v8: dont mess up the Makefiles Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Daniel Vetter <daniel@ffwll.ch> Signed-off-by:
Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
Some tests are designed to use GGTT API which should be skipped when HW doesn't support mappable aperture. Gem pread / pwrite "self" test is one of them. Signed-off-by:
Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
Imre Deak authored
Add new subtests that blit from a compressed source to a compressed destination buffer. While at it also add descriptions for the subtests. v2: - Use the correct buffer when dumping the png for the compressed buf. v3: - Add subtest descriptions. v4: - Add Bugzilla link. (Brian) - Add back linear subtest removed by mistake. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111771 Cc: Mika Kahola <mika.kahola@intel.com> Cc: Brian Welty <brian.welty@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by:
Imre Deak <imre.deak@intel.com> Reviewed-by:
Brian Welty <brian.welty@intel.com>
-
Imre Deak authored
GEN12+ the render and media compressed surface have different alignment requiremens than ICL, so adjust that. v2: - Clarify a bit the comments about AUX CCS units vs. main surface tiles. (Ville) Cc: Mika Kahola <mika.kahola@intel.com> Cc: Brian Welty <brian.welty@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by:
Imre Deak <imre.deak@intel.com> Reviewed-by:
Brian Welty <brian.welty@intel.com>
-
Imre Deak authored
On GEN12+ the AUX CCS surfaces required by the render and media compression must be specified by a 3 level page table directory, which translates the main surface graphics address to the AUX CCS surface graphics address. For this purpose add support for creating a GEM buffer to translate the linear surface address range to the linear AUX surface address range. The buffers containing the main surface must be pinned down, since the directory table entry indices depend on the surface address, and they must be 64kB aligned. The page table can be relocated OTOH, so allow that and emit the required relocation entries. v2: - Make level variables to be 0 based (l1..l3 -> level=0..2). - Add missing drm_intel_bo_set_softpin_offset() stub to fix build on non-Intel archs. - Fix missing offsets in reloc entries of already bound objects. (Chris) - Randomize pin offsets, to try to avoid eviction. (Chris) - Remove redundant MI_NOOPS around MI_LOAD_REGISTER_MEM - Stop using explicit reloc cache domains, as these don't make sense on GEN12 anyway. (Chris) - Fix missing autotools support. (Chris) - s/igt_aux_pgtable/intel_aux_pgtable/, since the functionality is Intel specific. (Chris) v3: - Make sure all objects with an AUX surface are pinned. v4: - s/MI_LOAD_REGISTER_MEM/MI_LOAD_REGISTER_MEM_GEN8/ (Chris) - Fix using buf->bo->size instead of buf->size when finding a free range for a pinned obj. - Fix alignment of the reserved space start for a pinned obj. - Move gen12_emit_aux_pgtable_state() to its logical spot. v5: - Fix reloc emit call, passing a relative instead of absolute target offset. (Chris) - Fix off-by-one error when generating a random offset for pinned objs. Cc: Mika Kahola <mika.kahola@intel.com> Cc: Brian Welty <brian.welty@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by:
Imre Deak <imre.deak@intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
Matt Roper authored
The TGL MOCS table was corrected in the bspec and the kernel. Since this test hardcodes its own copy of the MOCS table, we need to make corresponding fixes here. References: 046091758b50 ("Revert "drm/i915/ehl: Update MOCS table for EHL"") References: bfb0e8e63d86 ("drm/i915/tgl: MOCS table update") Cc: Prathap Kumar Valsan <prathap.kumar.valsan@intel.com> Cc: Lucas De Marchi <lucas.demarchi@intel.com> Cc: Francisco Jerez <francisco.jerez.plata@intel.com> Cc: Tomasz Lis <tomasz.lis@intel.com> Signed-off-by:
Matt Roper <matthew.d.roper@intel.com> Reviewed-by:
Lucas De Marchi <lucas.demarchi@intel.com>
-
Chris Wilson authored
I broke fb_mmap() proving that we need a test in CI! References: https://bugs.freedesktop.org/show_bug.cgi?id=112256 Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Ville Syrjälä <ville.syrjala@linux.intel.com>
-
Chris Wilson authored
On Skylake+, the use of the mask for the compare address is predicated by an instruction flag. On Broadwell, it seems that some engines use the mask and some do not. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112270 Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Acked-by:
Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
- Nov 13, 2019
-
-
gen9+ introduces a cmdparser for the BLT engine which copies the incoming BB to a kmd owned buffer for submission (to prevent changes being made after the bb has been safely scanned). This breaks the spin functionality because it relies on changing the submitted spin buffers in order to terminate them. Instead, for gen9+, we change the semantics by introducing a COND_BB_END into the infinite loop, to wait until a memory flag (in anothe bo) is cleared. v2: Correct nop length to avoid overwriting bb_end instr when using a dependency bo (cork) v3: fix conflicts on igt_dummyload (Mika) v4: s/bool running/uint32_t running, fix r->delta (Mika) v5: remove overzealous assert (Mika) v6: rebase on top of lib changes (Mika) v7: rework on top of public igt lib changes (Mika) v8: rebase v9: simplify by using bb end as conditional (Chris) Signed-off-by: Jon Bloomfield <jon.bloomfield@intel.com> (v2) Cc: Joonas Lahtinen <joonas.lahtinen@intel.com> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by:
Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
Chris Wilson authored
Check that even if userspace tries to sneak around the CPU caches of its zeroed pages, it sees nothing but zeroes. Suggested-by:
Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Matthew Auld <matthew.auld@intel.com> Reviewed-by:
Matthew Auld <matthew.auld@intel.com>
-
If we can't do secure execbuf, there is no point in trying. Signed-off-by:
Kuoppala, Mika <mika.kuoppala@intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
Arkadiusz Hiler authored
Sometimes we end up in /bin and I am not able to explain that just by looking at the machine or the IGT tarball that was deployed there so let's get some more breadcrumbs. Cc: Petri Latvala <petri.latvala@intel.com> Issue: #12 Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Petri Latvala <petri.latvala@intel.com>
-
Juha-Pekka Heikkilä authored
instead of 0.5 use 1.0 for white color, this is due to bit replication effect. Also set cairo to use same blending mode as what HW uses. Signed-off-by:
Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by:
Mika Kahola <mika.kahola@intel.com>
-
Juha-Pekka Heikkilä authored
casting unsigned char pointer to int pointer causes gcc to be unhappy with comment: "warning: dereferencing type-punned pointer will break strict-aliasing rules" Signed-off-by:
Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by:
Petri Latvala <petri.latvala@intel.com>
-
Chris Wilson authored
The kernel is now enforcing that clients are not allowed to block higher priority contexts from accessing the GPU; one is no longer allowed to sleep for a second hogging the GPU. Reduce the sleep down to 50ms, short enough not to anger the preempt-off checks while long enough for any ordinary GPU work to complete. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
Chris Wilson authored
The pair of *-hang-all will generate sufficient hangs for the kernel to ban the client. This is unfortunate as it means all further tests are skipped. Ask nicely not to be banned. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
Chris Wilson authored
Within this set of fence execution tests, we never once try to modeset; being KMS master is not required. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
- Nov 12, 2019
-
-
Chris Wilson authored
If a test is only targeting the GGTT API and its corner cases, it can only run if we have a mappable aperture. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: Antonio Argenziano <antonio.argenziano@intel.com> Acked-by:
Antonio Argenziano <antonio.argenziano@intel.com>
-
Arkadiusz Hiler authored
Our list was something between Wayland and Linux Kernel list implementations, right in the uncanny valley. On top of that it falsely claimed that it's a straight copy from the Wayland project. Let's make our impl more akin to the kernel one to ease the cognitive dissonance for the developers working on all those projects. This patch: * mimics the current kernel list interface * separates IGT helpers in the source files * adds brief explanation and code example for igt-doc * introduces igt_list.c as static inlines are not visible in the docs v2: mimic the kernel instead of wayland (Chris) - _head suffix for the sentinel/link struct - _entry_ in iterator names that go over the elements v3: I forgot to merge this in time and there was another call site that had to be converted in gem_spin_batch.c Cc: Petri Latvala <petri.latvala@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Petri Latvala <petri.latvala@intel.com>
-
Chris Wilson authored
Register a userspace fault handler for a memory region that we also pass to the GPU via userptr, and make sure the pagefault is properly serviced before we execute. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
- Nov 11, 2019
-
-
Arkadiusz Hiler authored
The following error looks quite mysterious: $ ../../tests/igt_command_line.sh kms_ccs ./kms_ccs: Checking invalid option handling... Checking valid option handling... Checking subtest enumeration... FAIL: ./kms_ccs Let's add some explanation when we fail the subtests enumeration checks so people are not completely baffled when they get failures from the CI. Cc: Mika Kahola <mika.kahola@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Petri Latvala <petri.latvala@intel.com>
-