Age | Commit message (Collapse) | Author |
|
GCC likes to complain that every function here dies in an assert and
doesn't return, which is very true but not one we wish to optimise for.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
i915 may not be the only, nor the first, vtcon framebuffer device - we
need to check them all!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
"Live" selftesting of i915.ko happens during device probing which eats
the error code and does not propagate it back to module loading.
Workaround this by writing the error code back to the module parameter
and probing it after a "successful" install.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
mount("/sys/kernel/debug") will return an error if something is already
mounted there. So let's check for that before calling mount(). This
allows many of the tools (eg. intel_reg) to work even when no drm
drivers are loaded since the earlier "/sys/kernel/debug/dri" & co.
path checks will fail in that case and we will fall back to attempting
to mount debugfs ourselves.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
whilst we may be passing around file descriptions, using fence or
timeline as appropriate is more descriptive.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
It takes a sw_sync_timeline and returns a fence (it is a factory), so
call it sw_sync_timeline_create_fence() for better self-documentation.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Improvements to self-documentating API that matches the rest of sw_sync.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
igt likes to return kernel-esque negative errno where we can, and
indicate that we expect to operate on a sync_fence, otherwise it is
merely a grandiose poll().
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Common practice for igt when providing tests for new features in
unreleased kernels is to include a complete set of uABI stubs. Lack of
such compatability breaks compilation on current distributions' kernel
headers.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Since we're not modifying these anywhere, let's make them const so as to
not break code doing comparisons against compile-time CRCs.
Signed-off-by: Lyude <lyude@redhat.com>
Tested-by: Robert Foss <robert.foss@collabora.com>
|
|
kmod already does the err = -errno for us.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The plan is to use this api in i915-perf tests so this adds the
corresponding stub in case libdrm was built with libdrm_intel disabled.
Signed-off-by: Robert Bragg <robert@sixbynine.org>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
|
|
The kernel has now a new debugfs ABI that can also allow capturing frame
CRCs for drivers other than i915.
Add alternative codepaths so the new ABI is used if the kernel is recent
enough, and fall back to the legacy ABI if not.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Robert Foss <robert.foss@collabora.com>
|
|
Add igt_require_sw_sync to provide tests to skip if sw_sync support isn't
available on the host machine.
Signed-off-by: Robert Foss <robert.foss@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
|
Base functions to help testing the Sync File Framework (explicit fencing
mechanism ported from Android).
These functions allow you to create, use and destroy timelines and fences.
Signed-off-by: Robert Foss <robert.foss@collabora.com>
Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
|
Many GPUs have more then 3 pipes available, so hard limiting this to
I915_MAX_PIPES prevents us from using anything that relies on
igt_display_init() on non-intel systems (since we end up writing out of
bounds and seg faulting). Fix this by dynamically allocating
igt_display->pipes using the number of pipes we've detected on the GPU.
Signed-off-by: Lyude <lyude@redhat.com>
Reviewed-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
|
|
The filter needs to skip the embedded test number as well.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Order the tests by an embedded test number from the parameter string.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Spotted-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
We've had support for universal planes since kernel version 3.15, so
there's not really a good reason to try supporting drivers that lack
plane support now. As well, the current has_universal_planes logic is
broken anyway as it makes the assumption that having display planes
always means we have both a primary plane and a cursor plane (this isn't
true on radeon/amdgpu and nouveau).
So, remove this, and just check for whether or not we have a cursor
plane.
Signed-off-by: Lyude <lyude@redhat.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
This reverts commit 721866d83907c8ade5d20121418261d715b145ed.
Still required for late tests as ->probe() is not allowed to return 1,
but must return a negative error code.
|
|
Returning a positive value from module loading does not get interpretted
as an error, so we can forgo passing a proxy value of -ENOTTY.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
So that debug logs contain the unexpected value.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Due to the unconditional call to intel_get_drm_devid() in
kmstest_force_connector(), trying to use this function on anything that
isn't intel hardware results in the current fixture being skipped. So,
don't try to get the devid in kmstest_force_connector() unless we're on
an Intel chipset.
Signed-off-by: Lyude <lyude@redhat.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
|
Not only do you need to change the prefix string, but you also need to
update its length.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Use igt__ to detect kernel parameters indicating subtests.
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>
|
|
Extract the automagic kselftest runner from tests/drm_mm.c to the new
lib/igt_kmod.c
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
v2:
- use igt_sysfs_get_boolean() to get gvt status (Chris Wilson)
- do not hard-fail when i915 module could not be loaded/unloaded (Chris
Wilson)
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
|
|
helpers.
lib/igt_aux: Added igt_pkill and igt_lsof helper.
lib/igt_kmod: Added load/unload kmod helpers.
v7:
- document the case where leaving stray fd from drm_open_driver()
might fail reloading the driver.
- list also current opened files from /dev/dri in case we could not
unload the driver.
- convert igt_info to igt_warn (Chris Wilson)
- added KMOD_|PROCPS CFLAGS (Chris Wilson)
v6:
- include latest modifications from tests/drv_module_reload:
display all loaded modules and list information about opened
files by processes (Petri Latvala)
v5:
- added igt_i915_driver_{load/unload}.
- added kick_snd_hda_intel() to match current
tests/drv_module_reload_basic and integrated into
igt_i915_driver_load/unload.
- added gtk-doc section for lib/igt_kmod
v4:
- decided to split libkmod helpers into their own file as there's
another user lib/igt_gvt or tests/gvt_basic.
- fixed some gtk-doc documentation.
v3:
- return -errno (igt_pkill()) in case of failure (Cris Wilson)
- return bool for igt_kmod_is_loaded(), replaced strncasecmp with strncmp
(Chris Wilson)
v2:
- Renamed libkmod helpers (Chris Wilson)
- Removed SIGTERM/SIGKILL case where we repeatedly tried to terminate the
process: just call kill(2) once (Chris Wilson)
- Removed redundant check in igt_kmod_unload(), igt_module_in_use() (Chris
Wilson)
- Pass flags to igt_kmod_unload() from the caller (Chris Wilson)
- Removed useless function igt_kill() which acts just as kill(2) (Chris
Wilson)
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Now that the signal is disable on spin_batch_end, we don't need to do
the same from the signal handler if we have a match.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This reverts commit 32d38ea2f6c3e07d38bc65f8cf2df1e0c0fe1c6b.
|
|
If the signal handler fires after we delete the busybatch, it would walk
the list and find no match. Then attempt to use the list_head as its
info->signo. Use the passed in sig instead.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
|
|
Fixes an issue when calling igt_spin_batch_set_timeout and then
tearing down the spinner right away before it has the chance
to timeout, causes the associated signal handler to linger. Make
sure to remove the handler on the destructor.
Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
A few warnings of the form:
gem_mmap_gtt.c: In function ‘copy_wc_page’:
gem_mmap_gtt.c:480:16: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default]
__m128i *S = (const __m128i *)src;
are no more.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
I noticed in some machines igt compilation was breaking
after igt_dummyload was introduced.
I don't know exactly why, but it seems this cast seems to let
old gcc a bit confused. Without the cast everything works
properly.
Compilation Error log:
CC igt_dummyload.lo
In file included from igt.h:30:0,
from igt_dummyload.c:25:
igt_aux.h:288:39: error: initializer element is not constant
#define __IGT_INIT_LIST(name) (struct igt_list){ &(name), &(name) }
^
igt_aux.h:289:47: note: in expansion of macro ‘__IGT_INIT_LIST’
#define IGT_LIST(name) struct igt_list name = __IGT_INIT_LIST(name);
^
igt_dummyload.c:50:8: note: in expansion of macro ‘IGT_LIST’
static IGT_LIST(spin_list);
^
make[4]: *** [igt_dummyload.lo] Error 1
Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
|
|
A lot of igt testcases need some GPU workload to make sure a race
window is big enough. Unfortunately having a fixed amount of
workload leads to spurious test failures or overly long runtimes
on some fast/slow platforms. This library contains functionality
to submit GPU workloads that should consume exactly a specific
amount of time.
Since v14: Since we are using multiple signals, walk list of batches
to terminate a batch to avoid using a single global batch. Cycle signals
between SIGRTMIN and SIGRTMAX properly.
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: tomeu@tomeuvizoso.net
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
|
|
Since we're going to be using lists for keeping track of EDIDs we've
allocated on the chamelium, add some generic list helpers from the
wayland project.
Signed-off-by: Lyude <lyude@redhat.com>
Changes since v1:
- Rename list helpers to be more like those from the Linux kernel
v2: Make the api compatible with the kernel as well.
|
|
Lots of test cases are re-declaring this.
v2: Remove definition in benchmarks/gem_syslatency.c
Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Commit 721d8747e3a2 added sync() calls to igt_main and
igt_simple_main, making self-tests fail to build. #including unistd.h
in igt_core.h fixes that.
Fixes: 721d8747e3a2 ("igt: Add a test for reordering execbufs")
CC: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Context BAN_PERIOD will get depracated so subsitute it with BANNABLE
property. Make ctx param test to accept both variants for now
until kernel changes have landed, to not break BAT.
v2: check against - EINVAL on get/set ban as it can return -EPERM
v3: better naming for get/set (Chris)
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
|
|
The kernel expects that BOs for framebuffers with
I915_FORMAT_MOD_Yf_TILED will have I915_TILING_NONE.
Fixes: 050c00d53f39 ("lib: Pass I915_TILING_Y to the kernel if Yf or Ys")
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
|
GEM_SET_TILING doesn't care about Yf or Ys, so just pass Y.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
|
We were passing in two places a framebuffer modifier constant instead of
a tiling constant.
Also adds igt_fb_mod_to_tiling so tests can do that by themselves.
Cc: Tvrtko Ursulin <tursulin@ursulin.net>
Fixes: 8a1a38661f56 ("lib: Add igt_create_bo_with_dimensions")
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 ;-)
v2: Move the file alongside intel_bufmgr.h and use it in the
disable-intel case.
Cc: Brian Starkey <brian.starkey@arm.com>
Reported-by: Brian Starkey <brian.starkey@arm.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Tested-by: Brian Starkey <brian.starkey@arm.com>
|