Age | Commit message (Collapse) | Author |
|
v2: Adjust tests accordingly
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Lock down the new uABI that DRM_IOCTL_I915_GEM_CONTEXT_CREATE returns
-EIO when wedged.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
|
|
igt_fixture within an igt_simple_test don't really work as advertised.
Minimal fix, the testcase seems fairly questionable already ...
References: https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_222/fi-icl-y/igt@kms_mmap_write_crc.html
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Except in igt_simulation.c where we use tricks and intentionally only
want part of the array in some cases.
Suggested-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
norecovery intentionally issues a GPU reset, but we should only do so
after confirming with the kernel that this can work.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109691
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
While at it, convert the existing testcase for invalid subtest names
to a positive one.
This is the only thing the invalid subtest checking for all tests did
cover, which wasn't covered through some other checks already.
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
This way we can make sure they die with an assert, which is what we
want.
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
They're causing troubles because this runs all the igt_fixtures, and
doing that on a build machine is at best surprising.
The main aim for this is catching testcases which fail to call
igt_exit. But just enumerating subtests does that too, and we have
library unit tests to make sure that's the case (with igt_no_exit and
igt_no_exit_list_only).
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
And convert everything over.
igt_segfault needed a bit of care to differentiate between a real
death-by-signal and igt_exit mapping a child process signal death to
an exit code.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Start with internal_assert, more will follow. While at it, use
internal_assert everywhere (except where we check exit status, those
will get dedicated assert checks).
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
We have tons of issues with crc mismatches, but often by that time
there was already a fifo underrun, which disables further fifo
underrun reporting. Reset fifo underrun reporting before we capture a
crc so that it's easier to figure out why the crc mismatch happened.
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
They are i915-specific, so they belong to the directory.
The (now) infix _pm_ is quite informative and worth keeping.
v2: also prefix .c files
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Ewelina Musial <ewelina.musial@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
So we do not have to do any rename shenanigans in the build system and
the .c files are easier to find.
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@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>
|
|
Meson 0.46.0 fixes the issue that forced us to do the renaming.
Cc: Daniel Vetter <daniel@ffwll.ch>
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>
|
|
... so we can have multiple binaries with the same name.
v2: Updated news (Daniel)
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
The write hazard lies extend also to the cache-dirty tracking; as we
purposefully do not tell the kernel we are writing to the bo, it fails
to note the CPU cache as dirty and so the gem_read() may not
sufficiently flush the caches prior to reading back from the GPU.
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>
|
|
We force a reset on test exit so that we can rapidly cleanup after a
naughty test, it is not unknown for us to leave a queue of hanging
batches around. However, if we have also fiddled with the i915.reset
parameter in the meantime, this can leave the kernel unable to fulfil
our request (and those naughty batches continue to disrupt testing).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Antonio Argenziano <antonio.argenziano@intel.com>
|
|
igt-dev is pretty established after a 1-year transition.
Let's end the transition and avoid confusion.
v2: Keep subjectprefix with i-g-t (Easwar)
v3: Also remove "Intel" from the line above. (Easwar)
Cc: Easwar Hariharan <easwar.hariharan@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Easwar Hariharan <easwar.hariharan@intel.com>
|
|
In triggering the ban, we only want to observe the local context be banned
and not the fpriv as a whole.
v2: And send an execbuf down the new context.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
|
|
That leaves exitcode 1 for aborts and initialization failures. Should
maybe differentiate those as well. Not to mention document the exit
codes.
Also fix igt_resume to follow suit to igt_runner: Generate
results.json even when aborting or exceeding overall-timeout.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Tomi Sarvela <tomi.p.sarvela@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
When RECOVERABLE is set, the kernel will attempt to automatically recover
a context after a hang. But if it is unset, the kernel will ban the
guilty context on a hang, preventing subsequent execution.
v2: Create a has_recoverable_param()
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
Copying i915_drm.h from
commit ba4fda620a5f7db521aa9e0262cf49854c1b1d9c (HEAD -> drm-intel-next-queued, drm-intel/drm-intel-next-queued)
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Mon Feb 18 10:58:21 2019 +0000
drm/i915: Optionally disable automatic recovery after a GPU reset
in order to expose the I915_CONTEXT_PARAM_RECOVERABLE for testing.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
We only use meson there.
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
... for completeness.
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
The kernel must not return stale information back to userspace when they
create a new object. For that purpose, we always clear objects on
creation, so verify that this is so.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
|
|
use IOCTLs gem_read for reading and, gem_sync to wait on a batch, this
will help testing platforms that might not expose gtt mapping.
v2:
- use a local helper for reading from BOs. (Chris)
- Always sync before reading. (Chris)
v3:
- Better helper naming. (Chris)
- Start read from actual offset. (Chris)
v4:
- Always use byte size in helper. (Chris)
v5:
- Fix byte<->count conversion. (Chris)
Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This test produces an awful, awful lot of redundant output as it tries
to find just the right amount of memory pressure to cause an
out-of-memory event in the middle of suspend. That is always quite a
slow process, taking 90s on a normal machine and 500+s on skl-y.
Furthermore, even when we do achieve the perfect setup, the test
frequently locks up and fails to resume with no indication that it is a
bug in the driver. The shrinker and oomkiller (plus i915) do not make for
a pleasant time!
Enough of Martin's whinging, I see no way of easily making this test
quieter, quicker and more efficacious, relegate it to the masochist only
stable.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Martin Peres <martin.peres@free.fr>
Cc: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Martin Peres <martin.peres@free.fr>
|
|
Older platforms need to clobber the display around a reset (incl. a
modeset to off, and a modeset back on), which can be much slower than
the reset itself. Give these platforms (gen2-4) some leniency and allow
them a higher limit before declaring them a failure.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
As we have moved to rcu/srcu to serialise the resets, individual resets
are subject to small variations in system grace periods. Allow for this
by only expecting the median reset time to be within our target, thereby
excluding noisy outliers from perturbing our results (but keep the
maximum capped to prevent horrid failures!)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
We don't need to waste time running perf-only test cases when we are not
manually checking results. ezbench is that away!
References: https://bugs.freedesktop.org/show_bug.cgi?id=109640
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
We're creating our own namespace and then create a copy of the chardev
that anyone can access before dropping root. Should hopefully work on
any system.
This way we're also guaranteed to open the right device again.
v2: mount(2) instead of mount(3).
v3: Drop execute bits from our temporary chardev (Chris).
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
We use the timeout status for when the runner had to kill a testcase,
which indicates a more sever issue than an operation failing that we
expected to complete within seconds.
Since it's unused, drop it.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Added in
commit 054eb1abecd1cce2e4ee0516f3ff8a67a35dca22
Author: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Date: Thu Mar 30 14:32:29 2017 +0100
benchmarks/gem_wsim: Command submission workload simulator
but since then the only user was lost.
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
There's a lot more ways to leak children than igt_fork, some even
handrolled. So check for that. Also have a nice littel testcase for
that too.
v2: Don't hang if there's a leaked child process (Chris). Has the
added benefit that my library unit test also gets faster!
v3: Rebase.
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Spotted by my new "are there any child processes left?" check in
igt_exit - we need to put all the igt_require before we start any real
test logic.
v2: Rebase.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
My new "are there any child processes left?" check in igt_exit catched
this one.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Instead of cleaning up the mess in igt_exit make sure we don't even
let it out of the container. See also
commit 754876378d6c9b2775e8c07b4d16f9878c55949f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Feb 26 22:11:10 2016 +0000
igt/gem_sync: Enforce a timeout of 20s
which added this helper.
To make sure that everyone follows the rules, add an assert.
We're keeping the cleanup code as a failsafe, and because it speeds
up the testcase I'm following up with.
v2: Chris pointed out that my original patch did nothing. Which I
didn't catch because my testcase was also broken. Unfortunately this
means we need to open code part of the waiting.
v3: The 2nd __igt_waitchildren() isn't necessary, __igt_waitchildren
recovers from EINTR already and keeps waiting (Chris Wilson).
v4: Change the timeout signal vs waitchildren logic to be race-free
(Chris). This changes the exit code for a timeout from
IGT_EXIT_FAILURE to SIGKILL + 128.
v5: Clarify the docs (Chris).
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Another corner case to check.
v2: Rebase. Note that we still have the SIG + 128 exit code, that's
how igt_waitchildren forwards child death to the parent's exit code.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Note that without the igt_waitchildren nothing at all gets forwarded,
maybe we should check for left-behind children somewhere on subtest
exit.
v2: Drop NIH exit status handling (Chris).
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Spotted by Chris.
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
For better readability, numeric values are replaced with macros.
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Once the HDCP is enabled, kernel will run the link integrity check(LIC)
atleast once in 2Secs based on the HDCP versions.
So to confirm the link integrity check is passed, we oberve that HDCP
state remains ENABLED for next 4Secs.
v2:
Rebased.
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
As we have two different patch for commitng the HDCP request
1. DDI_enable (during the modeset)
2. update_pipe (during fastset execution)
Currently our kms_content_protection covers only fastset path.
So this test adds the coverage for the HDCP during the modeset by
performing DPMS off-on and check for HDCP status.
But with respect to HDCP we allow few retries from userspace before
reporting the failure. So only first attempt at kernel will be on
modeset path, next retries will become fastset commiting of HDCP.
v2:
dpms test is added within existing implementation with a flag [Daniel]
v3:
ret declared.
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Modularizing the CP test steps for the convenience of reusing it for
other subtests.
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
This tests checks if hardware is able to do selective update when
screen changes.
PSR2 don't trigger interruptions and the 'PSR2 SU status' register
is not kept loaded all the times, so it is necessary keep polling
PSR status debugfs until those values are loaded.
Also from DEEP_SLEEP state HW will not do a seletive update, as
most of the memory/context is lost in deep sleep state hardware will
need to exit PSR mode then wait a configured number of frames to
activate PSR again to then start doing seletive updates, that is why
just one screen change is not enough to pass this tests.
When a selective update happens and the values are loaded and read
from debugfs it is compared with the expected value of seletive
update blocks, if matches the polling is stopped and the test passed
otherwise it will wait until it reachs a maximum number o screen
changes to fail the test.
v2: Using new SU blocks debugfs output
v3:
- removed the timerfd to fail the test, now failing based in a
maximum number of screen changes
- removing thread to read debugfs, read from main thread is enough
- improved commit message
v4:
- getting cairo context for frontbuffer test in prepare()
- droppoing poll(), using blocking timerfd instead
v5:
- Doing a modeset before trying to enable PSR2
v6:
- doing atomic commits to fix(legacy commit is taking more time in
recent kernels causing us to miss the SU when reading debugfs) and
speedup test
- fixed code to skip test when PSR2 is not possile
Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Tested-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
|
|
I spent quite some time trying to install all the dependencies to build
igt in for my distribution. After installing the packages, I noticed
that the Dockerfiles had the exact packages required for each
distribution. Add a pointer to the Dockerfiles in the README to save
folks time on setting up the environment required to build igt.
CC: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Easwar Hariharan <easwar.hariharan@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
|
Add CI for armhf environment.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
This fixes a compiler warning treated as an error when building for
32-bit architectures since their pointer size does not match the size
of drm_i915_gem_context_param.value which is 64 bits:
CC i915/gem_ctx_sseu.o
i915/gem_ctx_sseu.c: In function ‘test_ggtt_args’:
i915/gem_ctx_sseu.c:384:9: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
munmap((void *)arg.value, 4096);
It was found while building for arm with gcc 6.3.0 and I suspect the
same problem would arise for i386 or other 32-bit architectures. The
uintptr_t type is by definition an unsigned integer of the same length
as a pointer on a given architecture, so this should fix the problem
for all architectures up to 64 bits.
Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This reverts commit 845c9fb45b734aef95e2fb2317d0c02567e06a68.
To unblock GitLab's CI while a proper solution is in the works.
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|