summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2020-07-24tests/i915_pm_lpsp: Fix compilation warningArkadiusz Hiler1-4/+2
... and make the test do what it claims to be doing. The test needs all outputs to be disabled, but it was iterating with for_each_pipe_with_single_output, which iterates over pipes and tries to match them with some output. This may lead to us not iterating over all the outputs in some circumstances. Cc: Anshuman Gupta <anshuman.gupta@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Anshuman Gupta <anshuman.gupta@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-07-24tests/kms_atomic_transition: Add explicit curly bracketsArkadiusz Hiler1-2/+4
To clean up a bit and get rid of compilation warnings. Cc: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-07-23tests/device_reset: Fix missing autotools supportMarcin Bernatowicz1-0/+1
Updated Makefile.source to make device_reset test visible by autotools. Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
2020-07-23tests/device_reset: Test device sysfs resetMarcin Bernatowicz3-0/+285
Device reset is initiated by writing "1" to reset sysfs file, which should initiate PCI device Function Level Reset if supported by device. Test scenarios: 1. unbind driver from device, initiate sysfs reset, rebind driver to device 2. device reset with bound driver v2: removed unbind-rebind (duplicates core_hotunplug@unbind-rebind) added healthcheck to each test (Janusz) v3: after review corrections (renamed sysfs_fds to device_fds, corrected not closed file descriptor, removed variable length array) v4: updated description (Martin), snprintf corrections (Janusz), reset-bound added to blacklist as it hangs several gens of hosts (Tomi) Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@intel.com> Reviewed-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
2020-07-22tests/i915_pm_lpsp: Add igt_wait to test lpspAnshuman Gupta1-1/+2
Sometimes LPSP test may fail due to HOTPLUG events, which initiates AUX transaction in order to detect a Connector status, these ongoing AUX transaction may fail the LPSP igt test. Adding a igt_wait will avoid such failures. Some eDP panel may have power_cycle_delay of 600ms, therefore 1sec delay is safer. Cc: Animesh Manna <animesh.manna@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> Reviewed-by: Animesh Manna <animesh.manna@intel.com>
2020-07-21tests/kms: Use crtc offset to read vblank event for a pipeMohammed Khajapasha11-32/+75
Pass crtc_offset parameter to read a vblank event for a pipe to vblank helper functions. Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-21i915/gem_eio: Set modeset for enable pipesMohammed Khajapasha1-0/+2
Set modeset for enable pipes only in kms test Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-21tests/kms_atomic_transition: Set modeset for enable pipes onlyMohammed Khajapasha1-2/+7
Set the modeset for enable pipes only by using max iteration from enable pipe count. Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-21tests/kms: Skip kms test cases for disabled pipesMohammed Khajapasha8-14/+14
Skip the kms test cases for disabled pipes with non-contiguous pipe display. Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-21tests/kms_lease: Read crtc id for a valid pipeMohammed Khajapasha1-2/+3
Read crtc id for enabled pipes only. v2: Using for_each_pipe() macro for enabled pipes <Hiler, Arkadiusz> Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-21tests/kms_lease: Get pipe from crtc for enable pipesMohammed Khajapasha1-1/+4
Get pipe from drm crtc for enabled pipes only. v3: Beak the for_each_pipe() loop for a bad crtc <Hiler, Arkadiusz> Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-21tests/kms_cursor_legacy: Read crtc id for enable pipesMohammed Khajapasha1-5/+8
Read the crtc ids for enable pipes only in display. Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-20test/kms_cursor_crc: release old pipe_crc before create a new oneMelissa Wen1-0/+2
When a subtest fails, it skips the cleanup, and its pipe_crc remains allocated. As a consequence, the following subtest also fails (timeout) when trying to create a new one. This patch releases any remaining pipe_crc to enable the creation of a new one for the next subtest. Signed-off-by: Melissa Wen <melissa.srw@gmail.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-17i915/gem_exec_balancer: Race breadcrumb signaling against timeslicingChris Wilson1-0/+108
This is an attempt to chase down some preempt-to-busy races with breadcrumb signaling on the virtual engines. By using more semaphore spinners than available engines, we encourage very short timeslices, and we make each batch of random duration to try and coincide the end of a batch with the context being scheduled out. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2020-07-16test/kms_cursor_crc: update subtests descriptions and some commentsMelissa Wen1-6/+26
Add descriptions for some subtests and detail a little more the comments in test_cursor_alpha. Signed-off-by: Melissa Wen <melissa.srw@gmail.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-15intel-ci: s/huc_copy/huc-copy/Chris Wilson1-1/+1
Fix the testlist to match the test name. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2186 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
2020-07-15tests/i915/gem_huc_copy: Enable a HuC copy testSally Qi4-0/+140
This test case loads the HuC copy firmware to copy the content of the source buffer to the destination buffer. v2: (Tony Ye) * Restructured some functions and files. * Defined the copy buffer size as 4K explicitly as the HuC Copy kernel always copy 4K bytes from src buffer to dst buffer. v3: (Feng Qi, Antonio Argenziano, Tony Ye) * Restructured some functions as igt requested, exclude libdrm function call. * Remove huc function wrappers * Random initialize source input buffer v4: (Robert Fosha) * Fix autotools build failure. v5: (Feng Qi, Tony Ye) * Released all bo buffer after huc copying. * Restructured huc_copy() function. v6: (Feng Qi) * Fixed the function of huc enabling and status check * Added huc_copy to fast feedback testlist v7: (Tony Ye, Feng Qi, Robert Fosha, Chris Wilson, Michal Wajdeczko) * Check error with HUC_STATUS ioctl instead of debugfs v8: (Antonio Argenziano) * Remove unnecessary variable. * Add huc_load subtest. * Move failure checks out of igt_fixture. * get_huc_status() returns errno and then status as a parameter v9: (Antonio Argenziano) * Remove huc_load subtest - to be added later. v10: * Rebase * Remove huc_load subtest from fast-feedback.testlist. Signed-off-by: Feng Qi <feng.qi@intel.com> Signed-off-by: Tony Ye <tony.ye@intel.com> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Antonio Argenziano <antonio.argenziano@intel.com>
2020-07-13i915/gem_exec_schedule: Trim repetitions for preempt-queueChris Wilson1-1/+1
Double the queue length each time, instead of a plain increment, so we reduce the number of iterations we require by 4. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-07-13i915/gem_exec_schedule: Trim reorder-wide workloadChris Wilson1-7/+5
A future change will cause the scheduling to only take into account relative priorities and not apply strict priority ordering. To keep reorder-wide working we need to ensure that the seperation in priority levels is sufficient such that a ring full of the high priority work will have an earlier deadline than the first low priority request. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-07-13i915/gem_ctx_exec: Set a fast preempt timeout for nohangcheckChris Wilson1-0/+4
We want the test to run in a reasonable time, and verify that if the hangcheck modparam is disabled we can still recover from a dead context. The issue is that we've disabled preempt_timeout on tgl/rcs0 by default, and so since we want this test to be fast, we need to re-enable it for the test. Otherwise, we would have to wait several seconds for the heartbeat to notice the hung engine, exceeding the limits imposed on the test. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-07-12i915/gem_exec_schedule: Trim preempt-engines workloadChris Wilson1-1/+1
We don't need several thousand requests, timeslicing across 64 contexts to verifying that we can reorder contexts within contexts, so limit it to a couple of requests along each context to exercise promotion. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-07-11i915/gem_userptr_blits: Reduce readonly test runtimeChris Wilson1-5/+9
We do a lot of randomised passes to look for the same mistake. If the first worked, the likelihood of any of the later attempts failing is miniscule. Instead, lets use the repeated passed over many CI_DRM to do the thorough testing. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-07-10i915/gem_non_secure_batch.c: RemoveDominik Grzegorzek3-127/+0
Removal of gem_non_secure_batch as a last of disabled HANG(in Makefile.sources) tests. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-10i915/gem_bad_blit.c: RemoveDominik Grzegorzek3-122/+1
HW handling tests are not worth the maintenance as they do not actually validate themselves. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-10i915/gem_bad_batch.c: RemoveDominik Grzegorzek3-76/+1
gem_bad_batch does not add any additional value. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-10i915/gem_bad_address.c: RemoveDominik Grzegorzek3-79/+0
gem_bad_address does not add any additional value. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-10i915/gem_exec_bad_domains.c: Replace with gem_exec_reloc@negativeDominik Grzegorzek4-234/+74
Replace gem_exec_bad_domains with negative test in gem_exec_reloc. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-10i915/gem_close: Adapt to allow duplicate handlesChris Wilson1-8/+45
With an upcoming change, we can relax the rule about handles not being duplicated in the execocbj[]. Duplicate handles must not otherwise conflict in their placements (e.g. two EXEC_OBJECT_PINNED at different offsets), but otherwise if they are able to be resolved to the same GPU address, then the operation is harmless and decreed legal. Since this is a relaxation in the negative ABI, update the test case to allow the permissible duplicate handles. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2020-07-10igt/tests: Clear pipes properly in kms_atomic_transitionStanislav Lisovskiy1-4/+6
There is an issue happening from time to time in kms_atomic_transition (bug #1918). We periodically get assertion that some two outputs attempt to use same pipe like this: "Failed assertion: output->pending_pipe != b->pending_pipe" After some investigation came to conclusion that this is happening because we are calling igt_output_set_pipe(output, PIPE_NONE) only for connected outputs, which is wrong. Periodically igt_display_refresh/igt_output_refresh call calls can update the output state to disconnected. However that doesn't clear the pipe being assigned(i.e output->pending_pipe). So this causes assertion to be triggered on next igt_display_refresh called during commit. Bugzilla: https://gitlab.freedesktop.org/drm/intel/-/issues/1918 v2: - Do not use for_each_valid_output_on_pipe as it also iterates only on connected outputs(Maarten) - Also fix run_modeset_tests function Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2020-07-07lib/igt_fb: remove extra parameters from igt_put_cairo_ctxMelissa Wen24-51/+49
The function igt_put_cairo_ctx currently requires three parameters, but only one of them is used in it. This patch removes the useless parameters, making the code more readable and cohesive. It also applies the change to all occurrences of the function in the code. Signed-off-by: Melissa Wen <melissa.srw@gmail.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-07-06i915/gem_hang: RemovalDominik Grzegorzek3-102/+0
Remove gem_hang because it's not correct for more recent gen and redundant with the hangcheck checks. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-06i915/gem_caching: Remove libdrm dependencyDominik Grzegorzek1-69/+111
Thanks to intel_bb we are able to remove libdrm from gem_caching. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-06lib/bufops: add surface array to cover ccs pgtableZbigniew Kempczyński5-47/+48
Rendercopy for gen12+ requires additional aux pgtable. Alter bufops and tests to use surface[] and ccs[] instead aux. This step is required to properly rewrite handling aux pgtable to use with intel_bb. 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> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-06Build api_intel_bb with Autotools tooArkadiusz Hiler1-0/+3
Test introduced in 75bcaf7a609d ("tests/api_intel_bb: Add intel_bb API test") Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-06tests/kms_flip: Check for link reset during expired seq vblank waitImre Deak1-5/+17
The expired vblank seq subtests can fail when using certain monitors with a behavior described in commit 60e8be7ccc72086a88d2eff3bcd02495fad5fa46 Author: Imre Deak <imre.deak@intel.com> Date: Mon May 11 22:08:53 2020 +0300 tests/kms_flip: Retry test in case of a DP/HDMI link reset As in the above commit, retry the test once if a hotplug was detected during the test. Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com>
2020-07-06tests/kms_flip: Check for link reset during TS calibration as wellImre Deak1-31/+54
The timestamp calibration can fail when using certain monitors with a behavior described in commit 60e8be7ccc72086a88d2eff3bcd02495fad5fa46 Author: Imre Deak <imre.deak@intel.com> Date: Mon May 11 22:08:53 2020 +0300 tests/kms_flip: Retry test in case of a DP/HDMI link reset As in the above commit, retry the calibration once if a hotplug was detected during the calibration. v2: - Reinit the event->name fields too when retrying after a link reset. Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Uma Shankar <uma.shankar@intel.com>
2020-07-06i915/gem_softpin: Tighten interruptible runtimesChris Wilson1-13/+20
Rather than repeating a 5s test until the whole can pass without a single interrupt, move the interrupting loop around the ioctls of interest. This brings a test hitting the same interrupt paths from 100s to the expected 5s. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-07-03tests/api_intel_bb: Add intel_bb API testZbigniew Kempczyński2-0/+710
IGT code contains some mechanisms which are quite large and cover different gens so they deserve own api_* checks. Starting with api_intel_bb verify intel_bb functions work as expected. 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> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-07-02i915/perf: Instantiate a local drm_fd for the unprivileged helperChris Wilson1-0/+5
While the test is blocked, we keep trying the gen12_single_ctx_helper(). As this is using the parent's drm_fd, all of our context allocations are persistent. Reopen the device in the child so that when we exit, our allocations are freed along with the process -- avoiding a total memory leak if the test is stuck. This does not explain why the test was stuck, it just prevents us from exacerbating the error condition. Hopefully leaving the system in a more debuggable state. References: https://gitlab.freedesktop.org/drm/intel/-/issues/2126 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2020-07-02i915/gem_exec_await: Update to use __for_each_engine_physicalChris Wilson1-9/+11
Use the more recent engine iterator so we access all physical engines. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-07-01i915/gem_close_race: Mix in a contexts and a small delay to closureChris Wilson1-15/+53
Keep the old handles in a small ring so that we build up a small amount of pressure for i915_gem_close_object() and throw in a few concurrent contexts so we have to process an obj->lut_list containing more than one element. And to make sure the list is truly long enough to schedule, start leaking the contexts. Note that the only correctness check is that the selfcopy doesn't explode; the challenge would be to prove that the old handles are no longer accessible via the execbuf lut. However, this is sufficient to make sure we at least hit the interruptible spinlock used by close-objects. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michael J. Ruhl <michael.j.ruhl@intel.com> Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
2020-06-26lib: Use generic names for APIs that handle ueventsAnkit Nautiyal4-27/+27
The functions for handling uevents are named with "_hotplug" as suffix such as igt_watch_hotplug(). Earlier hotplug was the only uevent that was requested to be detected, but in fact, these APIs are generic and can be used for detecting other uevents too. Currently we have tests like kms_lease, kms_content_protection using the uevent handling infrastructure for detecting uevents other than hotplug. This patch renames the functions and replace the "_hotplug" suffix with "_uevents". v2: Rebase v3: Added changes in lib igt_chamelium.c, that was missed earlier. Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Suggested-by: Ramalingam C <ramalingam.c@intel.com> Suggested-by: Hiler, Arkadiusz <arkadiusz.hiler@intel.com> Reviewed-by: Ramalingam C <ramalingam.c@intel.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-06-26tests/kms_content_protection: Use library functions for handling ueventsAnkit Nautiyal1-139/+7
Currently, the test has its own version of uevent handling used for detecting hdcp events. This patch modifies the test to use the igt_kms lib support for handling the uevent monitor and detect hdcp events. v2: Rebased v3: Rebased Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Reviewed-by: Ramalingam C <ramalingam.c@intel.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-06-23i915/gem_exec_schedule: Fixup linkage between hi/lo priority threadsChris Wilson1-6/+10
Avoid the implicit GEM fence linking the low priority thread to the high priority thread that would order the low priority batch before the high, invalidating the test. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-06-22i915/gem_userptr_blits: Probe async error statusChris Wilson1-1/+12
Be wary in case we postpone error discovering for nonblocking execbuf, and double check the fence status. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-06-22i915/gem_exec_schedule: Check for store-dword support before useChris Wilson1-0/+6
Check that the target engine does indeed support store-dword before attempting to use it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-06-19tests: Move perf/perf_pmu under i915Chris Wilson4-4/+10
These are i915 specific tests of the perf and perf-workalike interfaces, so move them under i915/ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2020-06-14i915/gem_ctx_shared: Try to hide cmdparser delaysChris Wilson1-6/+28
The cmdparser is a cause of priority inversions [it is multiple FIFO queues, the kworkers] and so may perturb the Q-independent tests by delaying the high priority requests to only be submitted after the low priority requests have already completed. The goal of the test is let all be ready to run simultaneous and check that they are run in priority order [that they can indeed be run independently despite sharing the vm]. References: https://gitlab.freedesktop.org/drm/intel/-/issues/2013 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-06-13i915/i915_pm_rps: Tighten fence generation for waitboostChris Wilson1-14/+3
We need the object we wait on to be clean, and free of stray fences as the waitboosting only applies to i915_request that have not been started. If we use an exclusive fence (from a write dependency) that will strip off any foreign fences, allowing us to trick the driver into behaving as we expect. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-06-12i915/gem_exec_reloc: Verify engine isolationChris Wilson1-16/+89
Check that when relocating a batch along an engine, we are not forced to wait upon a resource elsewhere that userspace may be holding, or else we are faced with a deadlock that may be injected by another user. That deadlock may be resolved by resetting the hostile context, but in doing so we should not break the relocation processing. Ideally, we would avoid the deadlock. References: https://gitlab.freedesktop.org/drm/intel/-/issues/2021 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>