summaryrefslogtreecommitdiff
path: root/tests/i915/gem_userptr_blits.c
AgeCommit message (Collapse)Author
2022-05-31igt: Promote/rename OS helpersRob Clark
Promote intel_os.c helpers to igt_os.c, so that I can re-use them for some additional msm tests. Just big churny rename, no functional change. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2022-01-14tests/i915/gem_userptr_blits: Skip sd-probe test for discrete platformsGwan-gyeong Mun
DRM_IOCTL_I915_GEM_SET_DOMAIN ioctl is not supported on discrete platforms. Skip sd-probe test for discrete platforms. https://patchwork.freedesktop.org/patch/msgid/20210715101536.2606307-5-matthew.auld@intel.com v2: add a newline at the end of the skip string and fix the skip string. (Petri) v3: update the commit message. (Petri) Cc: Matthew Auld <matthew.auld@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2022-01-05tests/i915/userptr: fix mapping typeMatthew Auld
We need to use the FIXED mapping type on discrete platforms. Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com> Cc: Priyanka Dandamudi <priyanka.dandamudi@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-11-02tests/i915/gem_userptr_blits: Update for discretePriyanka Dandamudi
The set_caching ioctl returns -ENODEV for discrete. Update the relocations and set-cache-level subtest. Signed-off-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com> Cc: Matthew Auld <matthew.auld@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com>
2021-10-08lib: Typechecking minmaxChris Wilson
Add typechecking to the min/max macros and make their locals truly unique-ish to reduce the risk of shadowing. v2: small bug fix, write also height coordinate on rotation test. (jheikkil) v3: Fix up a couple of other max/max_t instances (Ashutosh) Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Chris Wilson <chris.p.wilson@intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
2021-10-07tests/gem_userptr_blits: Remove LOCAL_Rodrigo Vivi
These UAPIs are upstreamed now. Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2021-08-10tests/gem_userptr_blits: Adopt to use allocatorZbigniew Kempczyński
For newer gens we're not able to rely on relocations. Adopt to use offsets acquired from the allocator. Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-08-05igt/gem_userptr: Exercise new PROBE flagChris Wilson
Exercise new API to probe that the userptr range is valid (backed by struct pages and not pfn). v2: remove POPULATE for now Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Matthew Auld <matthew.auld@intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2021-07-08tests/i915/gem_userptr_blits: Convert to intel_ctx_tJason Ekstrand
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2021-05-27lib/i915/gem_create: Add gem_create_extAndrzej Turko
Add a wrapper for gem_create_ext ioctl (a version of gem_create that accepts extensions). In preparation for the driver change implementing it, a local definition of its id and necessary structs have been added, which are to be erased as soon as those definitions appear in the i915_drm.h file. The new ioctl wrapper is added to a separate file. For consistency the wrapper of the old ioctl, gem_create is moved from ioctl_wrappers to gem_create. Signed-off-by: Andrzej Turko <andrzej.turko@linux.intel.com> Cc: Zbigniew Kempczynski <zbigniew.kempczynski@intel.com> Cc: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Chris P Wilson <chris.p.wilson@intel.com> Signed-off-by: Matthew Auld <matthew.auld@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com>
2021-05-21tests/i915: test pass for no caching caseViswa Krishna Raveendra Talabattula
The userptr memory does not support I915_CACHING_NONE(no caching) level as per the below commit related to i915 in the kernel commit 02b64a4a0cb14e414b0be3b7261edc4fabfc0e2c Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Date: Tue Mar 23 16:50:02 2021 +0100 drm/i915: Reject more ioctls for userptr, v2. So lets make test pass for return value of -ENXIO and 0 Print warning of "Deprecated userptr SET_CACHING behavior" for older kernels Signed-off-by: Viswa Krishna Raveendra Talabattula <viswax.krishna.raveendra.talabattula@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-04-15tests/gem_userptr_blits: Check for banned mmap-offsetJanusz Krzysztofik
Support for mmap-offset to userptr has been obsoleted, then related lockdep splat reported issues are not going to be resolved other than still banning mmap-offset to userptr attempts. Replace "mmap-offset-invalidate-*" and "readonly-mmap-unsync" subtests which now skip with a negative "mmap-offset-banned" that fails if a mmap-offset attempt to a userptr object doesn't return ENODEV. Also, remove mmap-offset to userptr dependent processing paths from other subtest bodies and drop obsolete subtest variants. Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
2021-03-17lib/ioctl_wrappers: Keep IGT working without pread/pwrite ioctlsAshutosh Dixit
The general direction at this time is to phase out pread/write ioctls and not support them in future products. This means IGT must handle the absence of these ioctls. This patch does this by modifying gem_read() and gem_write() to do the read/write using the pread/pwrite ioctls first but when these ioctls are unavailable fall back to doing the read/write using a combination of mmap and memcpy. Callers who must absolutely use the pread/pwrite ioctls (such as tests which test these ioctls or must otherwise only use the pread/pwrite ioctls) must use gem_require_pread_pwrite() to skip when these ioctls are not available. v1: Removed __gem_pread, gem_pread, __gem_pwrite and gem_pwrite introduced previously since they are not necessary, gem_require_pread_pwrite is sufficient v2: Fix CI failures in gem_advise and gen9_exec_parse by introducing gem_require_pread_pwrite v3: Skip mmap for 0 length read/write's v4: Remove redundant igt_assert's v5: Re-run v6: s/EOPNOTSUPP/-EOPNOTSUPP/ v7: Rebase on latest master, skip gem_exec_parallel@userptr with gem_require_pread_pwrite v8: Re-run v9: Rebase Acked-by: Dave Airlie <airlied@redhat.com> Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-01-30meson: Turn on -WerrorAshutosh Dixit
We can choose which compile warnings to enable, but once they are enabled treat all warnings as error. This enforces stricter checks against compile warnings creeping in. v2: Fix redefinition warning errors from i915/gem_userptr_blits v3: Fix the even more pedantic clang compilation v4: Do not alter whitespace in lib/tests/igt_describe! Note: clang does not build assembler/ Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2021-01-28tests/gem_userptr_blits: Rework userptr tests to cope with changesMaarten Lankhorst
Userptr semantics are changed to no longer allow forked processes to obtain pages, it will fail with -EFAULT. We also no longer allow unsynchronized access, so has_userptr needs to check with the notifier installed. The only way to make forked tests work would be to do use a fork without clone_vm set, which we have no igt infrastructure for, and can't work like the current igt_fork(). Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> #irc
2021-01-23i915/gem_userptr_blits: Quick verification of set-cache-level APIChris Wilson
Mesa uses set-cache-level on userptr, so verify it doesn't arbitrary fail. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2021-01-23i915/gem_userptr_blits: Check set-domain on userptr for validationChris Wilson
We use set-domain on userptr to validate that get-user-pages is applicable to the address range in mesa & ddx. Let's perform a very basic test to exercise this combination. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-12-30i915/gem_userptr_blits: Replace legacy ring selectionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-12-30i915: Rename legacy for_each_engine to for_each_ringChris Wilson
Improve the differentiation between the legacy ring selector ABI and the more recent engine selection API. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Andi Shyti <andi.shyti@intel.com>
2020-11-20i915/gem_userptr_blits: 32b printf fixChris Wilson
"%zu" for size_t Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-11-19Remove unused intel_bufmgr.h headersDominik Grzegorzek
Delete intel_bufmgr include where it is not necessary. Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-11-10i915: Drop superfluous UFFD_API_RANGE_IOCTLS assertChris Wilson
We only require the minimum set of userfaultfd API (wake, copy) so we can remove the overzealous assert that we have the full range. The full range is not available if the vma contains a huge page, for example. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-11-10i915/gem_userptr_blits: Prune memfd macros for older installsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-11-10i915/gem_userptr_blits: Exercise vma-mergesChris Wilson
Inspect the impact of modifying neighbouring vma to an active userptr. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-11-08i915/gem_userptr_blits: Check for context support before useChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-11-07i915/gem_userptr_blits: Explicitly check userptr terminationChris Wilson
Check that everything works as expected with nohangcheck after a broken app. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-10-23i915/gem_userptr_blits: Replace fixed loop with timeoutChris Wilson
Run 'unmap-cycles' for a bounded period of time, rather than trying to run for a 1000 cycles. This ensures that even on the slowest of machines under the heaviest of debugs it does not take an inordinate amount of time. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2424 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-10-15i915/gem_userptr_blits: Tighten has_userptr()Chris Wilson
We use has_userptr() to determine if the different flags are supported, so it helps not to override the flags inside the test. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2020-10-15tests/i915: Treat gen as unsigned for forward compatibilityChris Wilson
We want to recognise future devices (gen = -1u) and treat them as an extension of the latest known device, which is typically true. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
2020-07-11i915/gem_userptr_blits: Reduce readonly test runtimeChris Wilson
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>
2020-06-22i915/gem_userptr_blits: Probe async error statusChris Wilson
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>
2020-05-11Macros fixes: Removed unused & redundant macrosranjeet kumar
Local macros were declared in several files as a prelude to upstream implementations. Now that we ship include/drm-uapi, we can remove LOCAL as we upstream. Cc: Dixit, Ashutosh <ashutosh.dixit@intel.com> Cc: Tahvanainen Jari <jari.tahvanainen@intel.com> Signed-off-by: ranjeet kumar <ranjeet1.kumar@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-07lib/i915: Split igt_require_gem() into i915/Chris Wilson
igt_require_gem() is a pecularity of i915/, move it out of the core. Similar opportunistic move of gem_reopen_driver() and gem_quiescent_gpu(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-04-10tests/gem_userptr_blits: Refresh other still MMAP_GTT dependent subtestsJanusz Krzysztofik
Extend initial check for support of MMAP_GTT mapping to userptr with equivalent checks for each MMAP_OFFSET mapping type supported by i915 driver. Based on that, extend coverage of process-exit-gtt* subtests over non-GTT mapping types. In case of dmabuf-* subtests, use first supported mapping type if there are any. v2: Clear 'map' before reuse (Zbigniew). v3: Kill out-of-context errno check (Chris). Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk>
2020-04-10tests/gem_userptr_blits: Refresh readonly-mmap-unsync exerciseJanusz Krzysztofik
Upgrade the subtest to use MMAP_GTT API v4 (aka MMAP_OFFSET), dynamically examine each mapping type supported by i915 driver. Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
2020-03-06i915/gem_userptr_blits: Add active variant of mmap-offset-invalidateJanusz Krzysztofik
Add a variant that also attaches a igt_spin_t to the userptr, waits for it to start executing, call igt_spin_set_timeout and then do the munmap. Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-03-06i915/gem_userptr_blits: Exercise new invalid mapping typesJanusz Krzysztofik
Attempts to create a userptr object on top of a GTT mapping to another GEM object are currently expected to succeed. However, attempts to pin the object pages in memory are expected to fail with -EFAULT. There is a subtests that already exercises that behavior. Having a closer look at the driver behavior we can see that the very first operation which tries to set the object pages fails with -EAGAIN. Moreover, if I915_USERPTR_UNSYNCHRONIZED flag has been used by object creation, MMU notifier is activated for the object. Consecutive attempts may also fail with -EAGAIN while the driver tries to acquire the pages in background, with the MMU notifier still possibly active, but then the background attempt to pin the pages in memory finally fails, the notifier is deactivated, and all following set pages operations fail with -EFAULT. That behavior can be observed not only for userptr objects created on top of GTT mappings, but also on new mapping types introduced by MMAP_GTT API v4 aka MMAP_OFFSET. Extend the scope of the subtest by converting it to a set of dynamic subtests which exercise each MMAP_OFFSET mapping type supported by hardware. Moreover, since the driver detailed behavior depends on the I915_USERPTR_UNSYNCHRONIZED flag being requested or not by object creation, move the subtest to a section where the state of the flag, which now defaults to being set, is set explicitly. Also, rename the subtest to reflect that change. v2: For as long as the lockdep loop issue is not fixed, don't succeed if a preventive failure occurs but skip (Chris), - otherwise, warn about possible risk, - put a FIXME placeholder until we learn how to anger lockdep. v3: Use dynamic subtests, with skips handled at mmap-offset attempt performed by the test anyway (Chris), - for better clarity of the patch, drop cosmetic only changes, - use more concise wording in subtest description. v4: Separate problematic lockdep loop trigger attempts from this patch to a follow up one, reword commit message and description, - move the subtest to "unsynchronized" section, - rebase on top of "lib/i915: Restrict mmap types to GTT if no MMAP_OFFSET support". Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Cc: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-03-05tests/gem_userptr_blits: Refresh map-fixed-invalidate* subtestsJanusz Krzysztofik
map-fixed-invalidate* subtests utilize gem_set_tiling() which may fail, e.g. on hardware with no mappable aperture, due to missing fences. Skip those subtests if fences are not available. Moreover, those subtests use GEM_MMAP_GTT IOCTL which has been replaced by GEM_MMAP_OFFSET that supports other mapping types, not only GTT. Use the new IOCTL and dynamically examine all MMAP_OFFSET types supported by hardware. v2: Examine all supported MMAP_OFFSET types, not only the first one that works, - add subtest description. v3: Refresh on top of commit 384e7ecb7464 ("lib/i915: Restrict mmap types to GTT if no MMAP_OFFSET support"). Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Cc: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-02-24tests/gem_userptr_blits: Exercise mmap-offset mapping to userptrJanusz Krzysztofik
Currently unavoidable lockedp loop related to userptr MMU notifier exists in the i915 driver. For that reason, attempts to set up a mmap-offset (or mmap-gtt) mapping to a userptr object may be now preventively rejected by the driver. A test should exists which checks for that. Would a mapping attempt succeed, the test should trigger the MMU notifier in a way that is proven to result in the lockdep slpat. As that exercise is strictly userptr related, it has been decided to add it as a new subtest to gem_userptr_blits. The new subtest examines userptr interaction with every supported mmap-offset type mapping on top of it. v2: Move the subtest from gem_mmap_offset to gem_userptr_blits, - use dynamic subtests (Chris), - don't FAIL but SKIP on mmap-offset attempt failure (Chris), - on success, try to anger lockdep (Chris). Suggested-by: Chris Wilson <chris@chris-wilson.co.uk Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Cc: Matthew Auld <matthew.auld@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-02-09i915/gem_userptr_blits: Replace fixed cycles with timeoutsChris Wilson
Never use arbitrary fixed amount of workloads as different machines may be a few orders of magnitude different in performance, use bounded timeouts instead. And we compromise by using 'small' timeouts for stress tests by assuming that repeated runs in CI will catch issues -- but not necessarily immediately in premerge. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2019-11-12i915/gem_userptr_blits: Exercise userptr + userfaultfdChris Wilson
Register a userspace fault handler for a memory region that we also pass to the GPU via userptr, and make sure the pagefault is properly serviced before we execute. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-10-26lib/i915: Use explicit iterator names in for_each_engine()Chris Wilson
Provide the iterator name as an explicit macro parameter so that it is known to the caller, and allows for them to properly nest loops over all engines. Fixes: ../tests/i915/gem_exec_schedule.c: In function ‘semaphore_noskip’: ../lib/igt_gt.h:84:44: warning: declaration of ‘e__’ shadows a previous local [-Wshadow] for (const struct intel_execution_engine *e__ = intel_execution_engines;\ ^~~ ../tests/i915/gem_exec_schedule.c:653:2: note: in expansion of macro ‘for_each_physical_engine’ for_each_physical_engine(i915, other) { ^~~~~~~~~~~~~~~~~~~~~~~~ ../lib/igt_gt.h:84:44: note: shadowed declaration is here for (const struct intel_execution_engine *e__ = intel_execution_engines;\ ^~~ ../tests/i915/gem_exec_schedule.c:652:2: note: in expansion of macro ‘for_each_physical_engine’ for_each_physical_engine(i915, engine) { ^~~~~~~~~~~~~~~~~~~~~~~~ ../tests/i915/gem_exec_schedule.c: In function ‘measure_semaphore_power’: ../lib/igt_gt.h:84:44: warning: declaration of ‘e__’ shadows a previous local [-Wshadow] for (const struct intel_execution_engine *e__ = intel_execution_engines;\ ^~~ ../tests/i915/gem_exec_schedule.c:1740:3: note: in expansion of macro ‘for_each_physical_engine’ for_each_physical_engine(i915, engine) { ^~~~~~~~~~~~~~~~~~~~~~~~ ../lib/igt_gt.h:84:44: note: shadowed declaration is here for (const struct intel_execution_engine *e__ = intel_execution_engines;\ ^~~ ../tests/i915/gem_exec_schedule.c:1719:2: note: in expansion of macro ‘for_each_physical_engine’ for_each_physical_engine(i915, signaler) { ^~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Andi Shyti <andi.shyti@intel.com>
2019-10-07i915/gem_userptr: Be defensive when testing userptr capabilitiesChris Wilson
Not every device naturally supports snooping and userptr, so be prepared for the initial probe to fail. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111910 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-10-02i915/gem_userptr_blits: Check for allowed GTT mmapsChris Wilson
Having decided to close the GTT mmap of userptr objects loophole in the kernel, we need to adjust the test suite to avoid tripping over GTT mmaps when required. v2: Refine read-only test to only skip checking GTT mmap interface. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-09-13igt/gem_blits: Check for blitter support before useChris Wilson
Not all HW supports XY blitter commands, so check before use. In particular, this makes it easier to debug the kernel. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Matthew Auld <matthew.auld@intel.com> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2019-08-13i915/gem_userptr_blits: Apply some THP pressureChris Wilson
Still trying to hit a deadlock with userptr from kcompatcd. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reveiwed-by: Andi Shyti <andi.shyti@intel.com>
2019-05-27i915/gem_userptr_blits: Nuke custom main functionPetri Latvala
The buffer count parameter, previously gotten from argv[1], is now the parameter -c. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-01-23tests: drop openssl dependency in favor of glib sha1 implementationJani Nikula
We already depend on glib which has sha1, so we don't really need openssl just for sha1. The opensll dependency was added in commit caea9c5b3aa1 ("igt/gem_userptr: Check read-only mappings"). Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2019-01-16i915/gem_userptr_blits: Only mlock the memfd once, not the arenaChris Wilson
We multiply the memfd 64k to create a 2G arena which we then attempt to write into after marking read-only. However, when it comes to unlock the arena after the test, performance tanks as the kernel tries to resolve the 64k repeated mappings onto the same set of pages. (Must not be a very common operation!) We can get away with just mlocking the backing store to prevent its eviction, which should prevent the arena mapping from being freed as well. References: https://bugs.freedesktop.org/show_bug.cgi?id=108887 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2018-10-23tests: Introduce i915 directoryArkadiusz Hiler
We can already move all the tests with distinct prefixes: gem_, gen3_ and i915_. pm_ and drv_ tests will follow in batches, so we can do the adjustments in the reporting/filtering layer of the CI system. v2: Fix test-list.txt generation with meson v3: Fix docs build (Petri) Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Martin Peres <martin.peres@linux.intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Tested-by: Petri Latvala <petri.latvala@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Chris Wilson <chris@chris-wilson.co.uk>