- Mar 03, 2020
-
-
Arkadiusz Hiler authored
Using chamelium as a display for non-chamelium-aware test is challenging. The board can be left in multiple different states after kms_chamelium tests even though we have atexit() handlers and other measures which try to assure that all ports are plugged in. Sadly this is not 100% reliable. We also had a few boards hard hanging (happens very seldom) and requiring manual intervention. This leads to changes in the testing configuration - we may end up with any number of connectors plugged in which makes a lot of kms_ tests to flip between skip and pass depending on a run. In an attempt to make connectors state less random this patch makes igt_display_require() chamelium-aware. If chamelium is configured for given machine we try to reach it and make sure everything is plugged in. If we fail to do so we abort the execution because the testing configuration is an unknown. For machines without a configured chamelium this boils down to a nop. I have run a bunch of tests and measured how much time we spend in the Chamelium section of igt_display_require() (n = 1000) with chamelium configured: Min: 0.0030s Max: 0.0113s Avg: 0.0089s Median: 0.0089s With ~1000 of KMS subtests in a run it's only a mere 9s. This will however add a bit of extra execution time to test skips because of doing kmstest_set_vt_graphics_mode() and igt_display_require() before even checking whether Chamelium is configured. v2: do kmstest_set_vt_graphics_mode() before requiring display (Petri) Fixes: drm/igt-gpu-tools#20 Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
Arkadiusz Hiler authored
Let's extract the bit that reads the config and initializes xmlrpc so we can do some basic things with chamelium without the need to do port auto-discovery and connector mapping. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
Arkadiusz Hiler authored
chamelium_wait_reachable() is asserting internally if the chamelium not reachable. Let's make it return bool instead and create void chamelium_assert_reachable() that fails the run. v2: Add docs (Petri) Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
Arkadiusz Hiler authored
Otherwise this may get us stuck in perpetual failure mode. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
Arkadiusz Hiler authored
Now that the IGT tests have a mechanism for signaling broken testing conditions we can stop the run on the first test that has noticed it, and possibly has triggered that state. Traditionally run would have continued with that test failing and the side effects would trickle down into the other tests causing a lot of skip/fails. v2: extra explanations, small cleanup (Petri) Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
Arkadiusz Hiler authored
to make this bit of code more readable and to reuse it in the following patch Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
Arkadiusz Hiler authored
igt_abort_on_f() is introduced which does very little cleanup and causes a hard exit() of the test binary with a unique exit code (IGT_EXIT_ABORT). The exit code informs the monitoring process that there is a critical issue with the testing environment which may have an impact on the results if testing continues. v2: Add a meta_test Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
Arkadiusz Hiler authored
Trying to read interleaved writes is a bit tricky, so let's just use /dev/null if we care about contents on only one of those pipes. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
Arkadiusz Hiler authored
Because of excessive 'copy and paste' we ended up with multiple copies of almost the same fork helper. This patch extracts the do_fork helper out and switches all the tests over to it. Additionally, preemptively I have extracted the more fancy fork helper that captures stderr/out + related functions out of igt_describe tests. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
- Mar 02, 2020
-
-
Chris Wilson authored
If we submit a second spinner along the same virtual engine as an INVALID_CS spinner, it may be terminated before we can check it is still alive. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
Juha-Pekka Heikkilä authored
removed fb does not take part into final crc comparisons. Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-
- Mar 01, 2020
-
-
Chris Wilson authored
Use fixed runtime rather than fixed iteration count. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
Chris Wilson authored
Use fixed duration and only a single stress tests for bo-write-verify to bring the runtime to within reason. Closes: https://gitlab.freedesktop.org/drm/intel/issues/1286 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
- Feb 29, 2020
-
-
Chris Wilson authored
The default preempt_timeout_ms is a shocking 640ms. To be resilient against false positives, we should include an engineering safety factor of about 2x into our fail criteria, so that we only cry foul when we are truly unresponsive. Closes: https://gitlab.freedesktop.org/drm/intel/issues/679 Closes: https://gitlab.freedesktop.org/drm/intel/issues/570 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
Chris Wilson authored
If we ensure that the background load has elevated priority, it will kick off the preempt-timeout hang detection, ensuring that our hang detection is fast. Closes: https://gitlab.freedesktop.org/drm/intel/issues/1277 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
Chris Wilson authored
Our current tests for pwrite do an exhaustive test of each page within the object in multiple directions to try and trick the page lookup into flummoxing. This is quite time consuming, so replace those for CI with a just a randomised, time-bounded check. Closes: https://gitlab.freedesktop.org/drm/intel/issues/1283 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
- Feb 28, 2020
-
-
Chris Wilson authored
Some of the non-privileged registers are at the same offset on each engine. We can improve our coverage for unknown HW layout by using the reported engine->mmio_base for relative offsets. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Dale B Stimson <dale.b.stimson@intel.com>
-
Chris Wilson authored
Several tests depend upon the implicit engine->mmio_base but have no means of determining the physical layout. Since the kernel has started providing this information, start putting it to use. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Dale B Stimson <dale.b.stimson@intel.com> Reviewed-by: Andi Shyti <andi.shyti@intel.com>
-
Ville Syrjälä authored
Use non-blocking commits when testing pixel formats so that we can start preparing the next fb even before the current fb has been latched by the hardware. Eliminates an extra frame for each color in cases where preparing the next fb takes longer than a frame. For non-atomic drivers we can't do this as drmModePageFlip() won't allow us to change pixel formats, or set any of the YUV color encoding/range propeties. Hence we must stick to plain old blocking setplane/setprop there. On KBL w/ 2048x1080 plane size: time kms_plane --r pixel-format-pipe-A-planes --extended - real 2m8,529s + real 1m52,078s time kms_plane --r pixel-format-pipe-A-planes - real 0m44,135s + real 0m40,116s Won't help modern platforms since they always use a 64x64 plane, but older platforms may benefit as they can't reduce the primary plane size. v2: Assert we get got the crc for the correct frame (Martin) Due to above add a vblank wait for cursor setplane. Make it more robust against the rendering taking a long time by grabbing the crc for the last possible frame rather than the first possible frame. Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-
Ville Syrjälä authored
Eliminate some dead time used to wait for crcs by pipelining the flips and crc capture. On KBL: time kms_plane --r pixel-format-pipe-A-planes - real 0m22,592s + real 0m14,527s time kms_plane --r pixel-format-pipe-A-planes --extended - real 1m8,090s + real 0m38,738s To keep the code somewhat sane we only pipeline while capturing the colors for a single pixel format. That does still leave a few non-pipelined frames when switching from one pixel format to another. Which explains why the extended test gets closer to the -50% mark as it tests more colors and thus has a larger proportion of optimally pipelined flips. Not sure how horrible the code would become if we tried to maintain the pipelining throughout the test. For now let's just accept the small victory and move on. v2: Use igt_pipe_crc_get_for_frame() to make sure we get the right crc even if the next fb preparation takes longer than one frame v3: Don't assume more than one color Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-
Ville Syrjälä authored
Add a new helper to return the crc for a specific frame. Useful when we pipeline flips and crc captures more deeply to eliminate dead time between the flips. Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-
Lionel Landwerlin authored
This appears to trigger hard hangs... v2: Add NUM_PROPERTIES() Add describe Add background load Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (v1)
-
Chris Wilson authored
Use a fixed duration rather than a fixed amount of work. Closes: https://gitlab.freedesktop.org/drm/intel/issues/1325 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
- Feb 27, 2020
-
-
V2: Remove unused & locally defined macros use proper ones instead. Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-
Petri Latvala authored
Now that selftest launchers are enumerable, we can control them with fast-feedback.testlist and blacklist.txt. For now, apply the status quo. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Acked-by: Martin Peres <martin.peres@linux.intel.com>
-
Use the new igt_subtest_with_dynamic to nicely group the dynamic subtests together. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com> Acked-by: Tomi Sarvela <tomi.p.sarvela@intel.com> Acked-by: Martin Peres <martin.peres@linux.intel.com>
-
This patch adds script and applicable assembly sources, so that we can use igt to assemble Clear Batch Buffer kernel for gen7 and gen7.5 devices - Resultant header files would be imported to i915, and used as they are... With this patch, user need to have mesa configured on their platform, before igt could be used to achieve the purpose of assembling the kernel from source. This is needed for "Security mitigation for Intel Gen7/7.5 HWs" Intel ID: PSIRT-TA-201910-001/CVEID: CVE-2019-14615 v2: Addressed formatting, -g option and other minor issues (Petri) v3: Update script due to suggested changes in i915, and Mesa tool v4: Update help comment with Mesa build option with meson (Petri) v5: Modify how user specify i965_asm - script now takes binary, instead of Mesa tool source directory (Ville). v6: Update script to reflect Mesa tool final changes to assemble CB kernel - and renamed files based on Petri's suggestion... Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Bloomfield Jon <jon.bloomfield@intel.com> Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
- Feb 26, 2020
-
-
Chris Wilson authored
Both the producer/consumer were using a timeout, relying on the consumer completing after the producers -- which 50% of the time doesn't happen. Close the timelines (previously leaked!) to cancel the producer threads. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
José Roberto de Souza authored
This will help us debug failures in this test. Also removing the previous debug message that was wrong, as it will always be set to MAX_SCREEN_CHANGES when SU blocks do not match. Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com>
-
Zbigniew Kempczyński authored
Ensure no one will pass negative index on igt_vec because it could lead to memory corruptions and weird program behavior. Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-
Lionel Landwerlin authored
The perf code coming from gputop assumed that devinfo for cometlake/coffeelake used the same entry (devinfo->is_coffeelake). Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 53f8f541 ("lib: Add i915_perf library") Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-
Petri Latvala authored
Remove the _dump half of the pair of recorder command structs and use a plain array of uint8_ts instead. Leave the struct in a comment to act as documentation. As a drive-by fix, add include guards to i915_perf_recorder_commands.h Signed-off-by: Petri Latvala <petri.latvala@intel.com> Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
-
- Feb 25, 2020
-
-
Chris Wilson authored
Show which debugfs file takes longest to read and suspend afterwards. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Martin Peres <martin.peres@linux.intel.com>
-
Chris Wilson authored
Since we check before and then after each debugfs entry, we do not need to check before each time as well. We will error out as soon as it does fail, at all other times we know the system to be idle. No impact on runtime for glk (which apparently is one of the better behaving systems). v2: Assert that we are currently suspended prior to opening the file, i.e. that nothing else is waking up the device behind our backs. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Martin Peres <martin.peres@linux.intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
-
Chris Wilson authored
I915_CONTEXT_PARAM_RINGSIZE specifies how large to create the command ringbuffer for logical ring contects. This directly affects the number of batches userspace can submit before blocking waiting for space. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
-
Chris Wilson authored
Check that if we have to remove a hostile request from a non-persistent context, we do so without harming any other concurrent users. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
Chris Wilson authored
Check that if the user demands the vma be replaced, they are. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
Chris Wilson authored
Due to the way i915_perf_open() works, it installs a wakeref on the fd. This wakeref prevents the normal drm_open_driver() exithandler from returning (as that waits for all wakerefs to ensure the GPU is idle). We need to manually control the nesting of cleanup, and so need to use __drm_open_driver() to avoid the default exithandler. References: https://gitlab.freedesktop.org/drm/intel/issues/1085#note_419148 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
Lionel Landwerlin authored
Instead of asserting. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 5f7e4ae6 ("tests/perf: reuse the new i915-perf library") Reviewed-by: Petri Latvala <petri.latvala@intel.com>
-
- Feb 24, 2020
-
-
Lionel Landwerlin authored
Fixes the perf oa-formats tests on Gen9LP. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 53f8f541 ("lib: Add i915_perf library") Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-