Age | Commit message (Collapse) | Author |
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
When execbuf2 supports explicit fencing with sync_file in/out fences
(via a fence-fd), we can control execution via the fence.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The intention behind EXEC_OBJECT_ASYNC is to instruct the kernel to
ignore implicit fences on the object but still maintain them for the GEM
API. The user is expected to provide explicit fencing to maintain
correct ordering of rendering.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Recently a patch ran successfully through BAT that broke 64bit
relocations on a couple of machines. Oops. So lets add a very fast set
of tests to check basic relocation handling.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Also re-sort the file.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
|
|
Also re-sort the file.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
|
|
Since the modeline may differ from actual hardware timings, do not rely
upon it but instead measure the actual and verify that it does not
change across the various flip/vblank configurations.
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>
|
|
List open files under sound devices.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Try to make sure the snd_hda_intel module is not in use, and can be
unloaded.
v2: unbind all cards (Libin)
Cc: Keqiao Zhang <keqiao.zhang@intel.com>
Cc: Libin Yang <libin.yang@intel.com>
Reviewed-by: Libin Yang <libin.yang@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Add the two basic gem_wait tests to the fast list, together they take a
total of 1s (when correctly functioning).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
The inter-engine synchronisation (with and without semaphores) is
equally exercised by gem_sync, so leave gem_storedw_loop out of the
"quick" set.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Fixes: 9921aff583ac ("lib/drmtest: Take DRIVER_ANY into account when opening the DRM device")
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
|
File is provided by the libdrm_intel package which is optional. Since we
already have a local copy of the file, we might as well use it ;-)
Cc: Brian Starkey <brian.starkey@arm.com>
Reported-by: Brian Starkey <brian.starkey@arm.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
__drm_open_driver was changed to bail out on VGEM devices unless they
are explicitly asked for (DRIVER_VGEM). But with that change we lost
support for DRIVER_ANY.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Fixes: 7ce63894854d ("lib: Support opening vGEM device")
Cc: Chris Wilson <chris@chris-wilson.co.uk>
|
|
As we allow userspace to set the dotclock, we should try to respect it!
Userpsace will try to set its frametimings based upon the dotclock, so
ideally it should match the measured vblank interval.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
then dump them to file.
The logs are pulled from a debugfs file '/sys/kernel/debug/dri/guc_log' and
by default stored into a file 'guc_log_dump.dat'. The name, including the
location, of the output file can be changed through a command line argument.
The utility goes into an infinite loop where it waits for the arrival of new
logs and as soon as new set of logs are produced it captures them in its local
buffer which is then flushed out to the file on disk.
Any time when logging needs to be ended, User can stop this utility (CTRL+C).
Before entering into a loop, it first discards whatever logs are present in
the debugfs file.
This way User can first launch this utility and then start a workload/activity
for which GuC firmware logs are to be actually captured and keep running the
utility for as long as its needed, like once the workload is over this utility
can be forcefully stopped.
If the logging wasn't enabled on GuC side by the Driver at boot time, utility
will first enable the logging and later on when it is stopped (CTRL+C) it will
also pause the logging on GuC side.
v2:
- Use combination of alarm system call & SIGALRM signal to run the utility
for required duration. (Tvrtko)
- Fix inconsistencies, do minor cleanup and refactoring. (Tvrtko)
v3:
- Fix discrepancy for the output file command line option and update the
Usage/help string.
v4:
- Update the exit condition for flusher thread, now will exit only after
the capture loop is over and not when the flag to stop logging is set.
This handles a corner case, due to which the dump of last captured buffer
was getting missed.
- Add a newline character at the end of assert messages.
- Avoid the assert for the case, which occurs very rarely, when there are no
bytes read from the relay file.
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Akash Goel <akash.goel@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> (v3)
|
|
We assert that the interval between a vblank and a flip corresponds with
the computed frametime derived from the modeline. However, historically
the dotclock is unreliable (in error of about 1%) for VBT supplied data
about LVDS panels - the situation looks to be much improved with eDP at
least. The simple fact that we cannot rely on the manufacturer's supplied
modeline causes us to fail the test. So before we claim a driver failure,
do a calibration pass and check for inconsistencies with the modeline.
v2: Refine the failure message when skipping
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Before we start trying random combinations of connectors and CRTCs, we
should first ensure we have a blank slate so that if we only change a
subset of the CRTC we do not conflict with a residual setup on the other
CRTC.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
References: https://bugs.freedesktop.org/show_bug.cgi?id=9431
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
We have a cantiga that doesn't pass
igt@kms_flip@basic-flip-vs-wf_vblank, and so knowing why is off the
upmost priority! Before the assertions print the values we are about to
test in greater detail.
References: https://bugs.freedesktop.org/show_bug.cgi?id=98352
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
It's a bit verbose, but should only happen on errors. This should help
debug the snd_hda_intel unload issues.
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
References: https://bugs.freedesktop.org/show_bug.cgi?id=98361
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
For the basic error state, we only desire that an error state be created
following a hang. For that purpose, we do not need a real hang (slow
6-12s) but can inject one instead (fast <1s).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Not all hw or kernels supply an overlay plane, so don't assert it's
presence and just skip the test instead in its absence.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Given aperture fragmentation execution with a fresh object would bind it
outside of the mappable aperture. On earlier gen, execbuf uses the global
GTT and so a subsequent pwrite would be move the idle object into the
mappable aperture, invalidating the existing reloc.presumed_offset - which
are supposed to be accurate as we pass NORELOC.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98109
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Emitting a debug message for every pixel tested takes us from 0.4s to 20s
on an old Core2.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The kernel tries to hide L-shaped memory with asymmetric swizzling from
userspace by reporting lies through the get-tiling interface. Check for
these lies by comparing the reported swizzle with the actual swizzle,
and only run swizzling tests where we know the underlying physical
swizzling.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
If we opened the driver multiple times, we would not flush i915 if it
was opened second. The persistence of one test state into a second can
upset third parties, e.g. prime_vgem upsetting vgem_basic (due to
references from i915.ko to vgem.ko preventing module unload).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
While at it fix the order of states for consistency.
Suggested by Daniel.
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
It's a compromise between detecting an unlikely timing error in one
test and being able to run a broader selection of tests. I hope this is
wise.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The l3_parity tool requires multiple banks and fails on ivb which has no
l3_parity_slice_1.
References: https://bugs.freedesktop.org/show_bug.cgi?id=97565
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
A builtin modules does not have a sysfs/device/module symlink, so be
creative.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Hopefully, this will provide more clues for figuring out why
snd_hda_intel unload fails sporadically.
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Test scripts can call hda_dynamic_debug_enable and
hda_dynamic_debug_disable to enable/disable snd_hda_intel and
snd_hda_core debug messages. The dynamic debug will be disabled
automatically at test end by the exit handler.
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
While at it, make debugfs_path point at the debugfs root, not
dri. This'll be handy in future work.
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Make the IGT logging stand out better and easier to grep.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97108
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Avoid macro expansion inside the asserts so that the error messages are
readable.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Move the munmap() to the common path to ensure it is released at the end
of each test.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Match the i?86 pattern when looking for an x86 to catch 32bit build
systems as well.
Cc: Daniel Stone <daniels@collabora.com>
Cc: Eric Anholt <eric@anholt.net>
Fixes: bccc0ec6a3fd ("build: Disable x86-specific utilities on non-x86")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
|
|
Add a new subtest that performs suspend-to-mem and -disk, but instead of
doing the full sequence it suspends/resumes only devices. A failed S3/4
subtest and a successful S3/4-devices subtest would indicate a kernel core
or BIOS problem as opposed to some issue in the driver.
v2:
- Add a new basic-S3-devices subtest too. (Chris)
Signed-off-by: Imre Deak <imre.deak@intel.com>
|
|
To have a more accurate idea about any suspend/resume issues we can
perform the s/r until various phases in the s/r sequence. This way we
can isolate the given problem as being a device driver, kernel core or
BIOS related issue. Actual subtests using these new s/r phases will be
added as follow-up.
While at it also add the freeze suspend target, it's something we also
would need to test.
Signed-off-by: Imre Deak <imre.deak@intel.com>
|
|
The stable path is via sys, but we only have to use this should the
kernel be ignoring our request to ignore simulated hangs.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
An interesting complication arises using machines with different
aperture sizes and special execbuf modes like secure dispatch which uses
the smaller global aperture. In order to avoid false positives from the
test, we need to make sure that the secure dispatch is capable of being
run before submitting.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88392
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Rather than guestimating a workload that should take a certain amount of
time, use a sigitimer to terminate a batch (and so complete the wait)
after an exact amount of time. And in the process expand testing to
cover multiple rings and hangcheck.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|