Age | Commit message (Collapse) | Author | Files | Lines |
|
... 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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|