Age | Commit message (Collapse) | Author |
|
Silly compiler emitting warnings that just cause people to break code
attempting to silence the compiler.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
Acked-by: Damien Lespiau <damien.lespiau@intel.com>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Aparently we never supported that mode of operation. Maybe in the future
we will, but for now just use the vblank wait to align ourselves with
the vblank.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Let's make sure the ts vs. seq difference between the current and last
events match.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
To aid in diagnosing failures, print out the expected time
difference between the two events.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Include diff.tv_secs in the jitter comparison.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Replace some opencoded numbers with USEC_PER_SEC, and
print the usec_diff with 6 decimal digits to make things
more consistent.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
A common problem when trying to unify legacy and atomic is the breaking
of existing non-blocking, asynchronous userspace. The most trivial
example is a cursor that stalls for a pageflip.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Skip if the vgem module is not present, but still fail if we fail to
load it.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
tests using executable permission.
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
|
|
that require it.
This should allow tests/vgem_reload_basic to pass check target and it
doesn't depend of i915 being present.
v2: Do not source drm_lib.sh, only fake getopt parsing
option to again access to --list-subtests option (Chris)
v3: Forget to place the script in Makefile.sources, otherwise
distcheck will not copy it.
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
[Chris: Replace exit 1 with exit $IGT_EXIT_FAILURE]
CC: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Pass -s switch to modprobe so that we don't litter stderr with the error
message for a missing module - the load failure is sufficient.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
commit e63a0681d95a ("tests/gem_close_race: Use drm_open_driver helper")
left a few raw open() behind. Eliminate them as well!
References: https://bugs.freedesktop.org/show_bug.cgi?id=96605
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Close the batch before asserting so that we don't have to wait for a
hang after a failure.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Since we use distinct WC addresses for the same page, we need to flush
the WCB after the write in order to see it from the other mmaping.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
For fun, debugfs/.../names currently explodes, so lets capture that and
make sure that basic access to debugfs does no harm.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Primarily to check that we have the WC read/write disparity.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The new Kernel behavior is that whenever a buffer has ever been WC
mmapped, the GTT mmaps will be treated as CPU operations. Because of
this, if we don't issue the dirty_fb IOCTL after doing frontbuffer
rendering with the GTT mmaps, FBC will remain disabled. Luckily, the
only subtest that does this sort of mix is the multidraw subtest.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
|
|
This patch was originally written because of a workaround we were
planning to merge. Later we improved the workaround so it wouldn't
need this patch anymore. Then later we gave up on the workaround, but
decided to go with a plan that would cause GTT mmap writes to
invalidate FBC in case the frontbuffer ever had a WC mmap. So now we
need the patch again because we don't want a subtest that involves an
WC mmap to change the behavior of other unrelated subtests that use
GTT mmaps.
Even if we don't go with the current planned Kernel patch, merging
this should be worth in order to avoid future related problems.
v2: New commit message.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
|
|
A recent Kernel fix changed the way GTT and WC mmaps behave during
frontbuffer drawing. This, added with the fact that GTT mmaps are
special cases for PSR, suggests that maybe we should move to BLT
drawing in places where we can, in order to simplify things a little
bit.
v2: New commit message.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
|
|
In order to control some of the finer detail of detecting when we missed
an interrupt, replace the shell script with C.
This version submits a hanging batch and uses a child process to unhang
it, whilst the parent sleeps. As the child process is prevented from
running whilst the parent is alive (as the child is a low priority
normal process whereas the parent is a RT process), the child can only
unhang the parent after i915_wait_request() has spun up and tried to
enable the interrupt. In contrast, the shell script guessed a workload
that should take long enough for the i915_spin_request() to miss the
completion, but that was not guaranteed. Furthermore, from C we can
trigger a missed interrupt on each engine.
A minor convenience of the C version is that we don't have to worry
about install paths to find the binaries underneath.
References: https://bugs.freedesktop.org/show_bug.cgi?id=88437
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
It access hardware, hence why the simple igt_only_list_subtests()
check from igt_fork/stop_signal_helper() isn't enough.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
This tests that we are adding our requests to the dma-buf reservation
object, both in exclusive (write) and shared (read) mode.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Rewrite calloc() to use a GEM object for its backing storage, so we
increase stress on GEM and hopefully reduce the likelihood of an early
failure before hitting oom.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Make sure that injected hang is detected below time threshold.
This ensures that we fail if hang was of no-progress type instead
of a stuck engine.
v2: use igt_seconds_elapsed() (Chris)
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
0xffffffff as an illegal command confuses the command execution
on gen9 so that the next BB start will get ignored, causing a runaway
head past the bb end. This delays the hang detection substantially
as hangcheck then observes only a non progressing seqno.
Omit the bad instruction on gen8+ and rely on the chained batch
loop to cause a deterministic hang. Make the chained bb start
to jump straight into bb start, omitting the MI_NOOP or the bad
instruction on subsequent passes. This makes the acthd sampling
to hit more reliably to the same value, as the loop is smaller,
making the head appear to be 'more stuck'.
References: https://bugs.freedesktop.org/show_bug.cgi?id=92715
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
|
|
There is a extra call to igt_pipe_crc_start that is not matched to any
stop. Because of this the exit handler tries to reset the crc source on
exit while the pipe disabled. This causes fails with -EIO:
(kms_chv_cursor_fail:2643) igt-debugfs-CRITICAL: Test assertion failure
function igt_pipe_crc_pipe_off, file igt_debugfs.c:364:
(kms_chv_cursor_fail:2643) igt-debugfs-CRITICAL: Failed assertion:
write(fd, buf, strlen(buf)) == strlen(buf)
(kms_chv_cursor_fail:2643) igt-debugfs-CRITICAL: Last errno: 5, EIO
(kms_chv_cursor_fail:2643) igt-debugfs-CRITICAL: error: -1 != 11
Stack trace:
#0 [__igt_fail_assert+0xf1]
#1 [igt_pipe_crc_pipe_off+0xe4]
#2 [pipe_crc_exit_handler+0x35]
#3 [igt_atexit_handler+0x4c]
#4 [__libc_secure_getenv+0x112]
#5 [exit+0x15]
#6 [igt_exit+0xd6]
#7 [main+0x1ee]
#8 [__libc_start_main+0xf0]
#9 [_start+0x29]
#10 [<unknown>+0x29]
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Add a test that makes sure every modeset gets rejected by the kernel if
the requested dotclock is beyond the hardware capabilities.
For now we just test the preferred mode for each connector, should
perhaps test them all to be more sure everything is getting rejected.
We also skip the test on connectros that have a fixed mode as the kernel
will ignore most of the user timings. We should make the kernel more
strict I think, to at least check that the user gets roughly the refresh
rate they requeted.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Check for available stolen memory size before attempting to run
the stolen memory tests. This way we make sure that we do not
create objects from stolen memory without knowing the available size.
This checks if the kernel supports creation of stolen backed objects
before doing any operation on stolen backed objects.
Also correcting the CREATE_VERSION ioctl number in getparam ioctl,
due to kernel changes added in between.
v2: Removed size argument for checking stolen memory availability (Tvrtko)
Signed-off-by: Ankitprasad Sharma <ankitprasad.r.sharma@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
no_mmap subtest is expected to fail, but calling gem_mmap__cpu
will assert the returned value itself, which makes test fail.
Replacing gem_mmap__cpu by __gem_mmap__cpu and checking the
returned value.
Signed-off-by: Ankitprasad Sharma <ankitprasad.r.sharma@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
This patch verifies if the contents of the stolen backed object were
preserved across hibernation. This is to validate kernel changes related
to moving stolen-backed objects to shmem on hibernation.
v2: Added comment, Use igt_assert_eq() instead of igt_assert(), Made loops
more readable (Tvrtko)
v3: Corrected assertion (Tvrtko)
Signed-off-by: Ankitprasad Sharma <ankitprasad.r.sharma@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
So that we can add an alternative implementation for the other arches.
This is basically what the kernel does.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
|
There's no properties on fb modeset objects, bug bugs in the
kernel when trying to use those ioctls in such an invalid way.
Cc: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
There's no properties on fb modeset objects, bug bugs in the
kernel when trying to use those ioctls in such an invalid way.
Cc: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Saturate the CPUs with background RT threads to soak up any spare CPU
not taken by testing threads.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Slightly less extreme than switching engines between commands, switch
engines between pixels. This helps contrast the request amalgamation in
execlists.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Since with execlists we use a context per-engine, we consume a lot more
space than we were currently estimating. Enough to hit oom on some
machines.
References: https://bugs.freedesktop.org/show_bug.cgi?id=94145
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Importantly this verifies that we pick a partial alignment/size
suitable for the tile.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Currently, we look at the throughput for submitting a read batch to a
single engine or any. The kernel optimises for this by allowing multiple
engine to read at the same time, but writes are exclusive to a single
engine. So lets try to measure the impact of inserting the barriers
between writes on different engines.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
relative path. Fix by passing the correct dirfd.
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
CC: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-By: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Too many interrupts missed being ignored.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|