- 15 Oct, 2020 1 commit
-
-
Chris Wilson authored
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>
-
- 21 May, 2020 1 commit
-
-
Chris Wilson authored
Our 'headless' subtest requires fairly precise measurements to determine the impact of the dmc upon request latency. The test cannot be effective if we cannot execute requests quickly, so add a very short pre-pass to check the test requirements. For this we want to specify the baseline measurement timeout in milliseconds, allowing us to speed up our other baseline measurements elsewhere as well. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
-
- 11 May, 2020 1 commit
-
-
ranjeet kumar authored
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>
-
- 09 May, 2020 2 commits
-
-
Janusz Krzysztofik authored
Execbuf requests are now submitted by subtests in batches of 1024 repetitions. That may be too many under some circumstances (e.g., intensive logging output) and subtests may take far more time than expected. The reason standing behind that batching was unacceptable microsecond imprecision of gettime when gem_exec_nop was a benchmark rather than a test and time measurement was looking for a precision of ~100 ns. Since that measurement is now mostly informative and not a pass/fail metric, we can be more tolerant and accept overhead of gettime after each submission. Remove the batching from the body of subtests which don't require submicrosecond precision and measure time after each execbuf request submission (or a group of one submission per engine). Since there is one subtest - "headless" - which still requires more precise time measurement, don't remove the batching from nop_on_ring() helper but let its users request non-batched submission mode instead. To make this even more flexible, change semantics of the helper argument used so far for returning the count of submissions completed within the requested time frame and use it also for passing desired batch size (number of iterations), then update its users to initialize that argument according to their individual requirements. Note that this will impact slow hpet, such as Pineview, most. But equally the platform themselves is slow enough that a multi-millisecond clock granularity is still a minor irritation. 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>
-
Janusz Krzysztofik authored
Commit 870c774b ("igt/gem_exec_nop: Add expectancy of independent execution between engines") extended a "basic" subtest (now "basic-series") with a pass/fail metric based on comparison of parallel execution time to be less than an average * 2. Since then, that limit has been raised quite a few times: - by commit 41a26b51 ("igt/gem_exec_nop: Relax parallel assertion for short rings") to maximum + minimum, - by commit 7bd4f918 ("igt/gem_exec_nop: Explain the parallel execution assertion") to maximum + minimum * 10/9, - by commit a0eebbdd ("igt/gem_exec_nop: Relax assertion for parallel execution") to sum * 2. With the criteria relaxed up to that extent, the purpose of that check has been limited to a showcase for an old GuC failure. Since that is now obsolete, kill that assert. 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>
-
- 07 May, 2020 1 commit
-
-
Chris Wilson authored
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>
-
- 31 Mar, 2020 1 commit
-
-
Arjun Melkaveri authored
Crash issue was seen w.r.t engines on different platforms. Fixed this by initializing engine and engine name with maximum supported engines value. V2: Made changes for other tests using engine array. Reviewed-by:
Antonio Argenziano <antonio.argenziano@intel.com> Signed-off-by:
Arjun Melkaveri <arjun.melkaveri@intel.com> [ickle: just use MAX_ENGINES for a local macro] Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 07 Mar, 2020 1 commit
-
-
Chris Wilson authored
Use a different batch on each engine (still within the same fd/vm) to avoid ww_mutex contention. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Acked-by:
Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
- 11 Feb, 2020 1 commit
-
-
Chris Wilson authored
The engine names are now stored inside the iterator and not as static strings. If we wish to use them later, we need to make a copy. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by:
Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
- 31 Jan, 2020 1 commit
-
-
Arjun Melkaveri authored
Added __for_each_physical_engine to utilize all available engines. Moved single, signal, preempt, poll and headless test cases from static to dynamic group. Cc: Dec Katarzyna <katarzyna.dec@intel.com> Cc: Kempczynski Zbigniew <zbigniew.kempczynski@intel.com> Cc: Tahvanainen Jari <jari.tahvanainen@intel.com> Cc: Ursulin Tvrtko <tvrtko.ursulin@intel.com> Signed-off-by:
Arjun Melkaveri <arjun.melkaveri@intel.com> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
- 27 Jan, 2020 1 commit
-
-
Chris Wilson authored
Reduce the upper timeout for stress tests from 150s to a mere 20s, and quick tests to 2s. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Mika Kuoppala <mika.kuoppala@linux.intel.com>
-
- 15 Nov, 2019 1 commit
-
-
Kuoppala, Mika authored
If cmd parser is mandatory, batch can't be modified post execbuf. Some tests rely on modifying batch post execbuf. Give those tests a method to query if those modifications ever reach the actual engine command stream. v2: pull in the test changes, doh v3: class based query v4: rebase Signed-off-by:
Mika Kuoppala <mika.kuoppala@intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 27 Oct, 2019 1 commit
-
-
Chris Wilson authored
A couple of missed eb_ring(). Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> #for_each_engine
-
- 26 Oct, 2019 1 commit
-
-
Chris Wilson authored
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>
-
- 18 Apr, 2019 1 commit
-
-
Mika Kuoppala authored
There is no guarantee that spinners are and will be implemented using batches. As we have igt_spin_t, manipulate it through igt_spin_* functions consistently and hide the batch nature. Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by:
Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 26 Mar, 2019 1 commit
-
-
Chris Wilson authored
In order to correctly serialise the order of execution between rings, we need to flag the scratch address as being written. Make it so. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
- 23 Oct, 2018 1 commit
-
-
Arkadiusz Hiler authored
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>
-
- 04 Oct, 2018 1 commit
-
-
Chris Wilson authored
If KMS is not supported on the device, drmModeGetResources() will return NULL, often this is an indication that we should not attempt to run the test. Although it would be preferred to use something like igt_require_display() as the canonical check and assert that drmModeGetResources() did not hit an error, it is not always practical as the tests do not utilize the common igt_display abstraction. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 06 Jul, 2018 1 commit
-
-
Chris Wilson authored
In order to make adding more options easier, expose the full set of options to the caller. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
- 20 Jun, 2018 1 commit
-
-
Chris Wilson authored
Wait until the previous nop batch is running before submitting the next. This prevents the kernel from batching up sequential requests into a a ringfull, more strenuous exercising the "lite-restore" execution path. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Katarzyna Dec <katarzyna.dec@intel.com>
-
- 20 Mar, 2018 1 commit
-
-
Antonio Argenziano authored
In interfaces where a parameter allow to select an engine, we usually use '-1' or '~0u' to select all engines. This patch replaces magic numbers with a named constant. Suggested-by:
Chris Wilson <chris@chris-wilson.co.uk> 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>
-
- 23 Feb, 2018 1 commit
-
-
Chris Wilson authored
We current have a single for_each_engine() iterator which we use to generate both a set of uABI engines and a set of physical engines. Determining what uABI ring-id corresponds to an actual HW engine is tricky, so pull that out to a library function and introduce for_each_physical_engine() for cases where we want to issue requests once on each HW ring (avoiding aliasing issues). v2: Remember can_store_dword for gem_sync v3: Find more open-coded for_each_physical 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>
-
- 07 Feb, 2018 1 commit
-
-
Antonio Argenziano authored
This patch adds a context creation ioctl wrapper that returns the error for the caller to consume. Multiple tests that implemented this already, have been changed to use the new library function. v2: - Add gem_require_contexts() to check for contexts support (Chris) v3: - Add gem_has_contexts to check for contexts support and change gem_require_contexts to skip if contests support is not available. (Chris) v4: - Cosmetic changes and use lib function in gem_ctx_create where possible. (Michal) v5: - Use gem_contexts_require() in tests and fixtures. (Chris) Signed-off-by:
Antonio Argenziano <antonio.argenziano@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by:
Michał Winiarski <michal.winiarski@intel.com> Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 11 Dec, 2017 1 commit
-
-
Chris Wilson authored
A few tests only require DRM_MASTER privileges for a subset of gen or tests, and so open the device as normal and conditionally call drmSetMaster. Translate these over to using igt_device_set_master(), which includes a bit more debugging for when it fails. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
-
- 29 Nov, 2017 1 commit
-
-
Arkadiusz Hiler authored
This patch gets rid of the Android support, deleting all the hacks and moving code around to the places it belongs. Android build is not really maintained properly and rots rather fast. With recent push for Meson here and Android going for Soong it will only accelerate. It's a good time to drop the illusion of providing any support. Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Kalyan Kondapally <kalyan.kondapally@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Acked-by:
Petri Latvala <petri.latvala@intel.com>
-
- 25 Oct, 2017 1 commit
-
-
Chris Wilson authored
Since the headless subtest wants to compare execution latency of a headless mode vs a single head, it needs to be able to do a modeset and ergo it requires DRM_MASTER. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Michał Winiarski <michal.winiarski@intel.com>
-
- 19 Oct, 2017 1 commit
-
-
Michał Winiarski authored
Since I accidentally broke the build for some, by putting the pretty printer for submission inside ifdef HAVE_PROCPS, it's time to move the whole thing into lib/i915 while fixing this mistake. Let's also rename the pretty printer and add a doc to it as well as the section. Fixes: f6dfe556 ("lib: Extract helpers for determining submission method") Signed-off-by:
Michał Winiarski <michal.winiarski@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 17 Oct, 2017 3 commits
-
-
Michał Winiarski authored
Another example of something that is used across different tests, and should be moved to lib. v2: Break the trend of expanding ioctl_wrappers Signed-off-by:
Michał Winiarski <michal.winiarski@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Katarzyna Dec <katarzyna.dec@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Katarzyna Dec <katarzyna.dec@intel.com> Acked-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Michał Winiarski authored
Couple of tests are using either determining scheduler capabilities or pretty printing. Let's move those to helpers in lib. We can also keep the value obtained from getparam static. v2: Break the trend of expanding ioctl_wrappers Signed-off-by:
Michał Winiarski <michal.winiarski@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Katarzyna Dec <katarzyna.dec@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Katarzyna Dec <katarzyna.dec@intel.com> Acked-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
Michał Winiarski authored
Couple of tests are using either determining submission method, or pretty printing. Let's move those to helpers in lib. v2: s/igt_show/gem_show Signed-off-by:
Michał Winiarski <michal.winiarski@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Katarzyna Dec <katarzyna.dec@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Katarzyna Dec <katarzyna.dec@intel.com> Acked-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-
- 29 Sep, 2017 1 commit
-
-
Chris Wilson authored
Measure how many high priority batches we can execute whilst running a bg spinner. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
-
- 07 Jun, 2017 2 commits
-
-
Arkadiusz Hiler authored
Unfortunately <signal.h> is included through some obscure dependencies when using bionic, so we have a name clash on signal(). Changed the test function name to fence_signal() to avoid this, but left the test cases names unchanged. Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Petri Latvala <petri.latvala@intel.com>
-
Arkadiusz Hiler authored
Currently whole igt_kms.c is disabled while compiling on Android without cairo, so this tests does not compile. There should be cleaner a way to disable only cairo dependant parts which should allow us to enable at least some of the KMS tests, but that's a bigger rework for another time. v2: simplified #ifs on CAIRO/ANDROID (P. Latvala) Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by:
Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by:
Petri Latvala <petri.latvala@intel.com>
-
- 31 May, 2017 1 commit
-
-
Lukasz Fiedorowicz authored
gem_execbuf_wr was duplicated in multiple places. Moving everything to lib/ Signed-off-by:
Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com>
-
- 13 May, 2017 1 commit
-
-
Chris Wilson authored
Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 12 May, 2017 1 commit
-
-
Chris Wilson authored
Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 19 Apr, 2017 2 commits
-
-
Chris Wilson authored
Report the measurements as we make them. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
Tvrtko Ursulin authored
Check that no-op execution speed is the same in headless mode and with the display active. v2: * Set graphics mode for the test to disable blanking. (Imre) * Use igt stats framework as suggested by Chris. v3: * Rename variable names for clearer assert. * Simplify by using I915_EXEC_DEFAULT. (Chris Wilson) Signed-off-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100572 Cc: Imre Deak <imre.deak@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Chris Wilson <chris@chris-wilson.co.uk> Acked-by:
Petri Latvala <petri.latvala@intel.com>
-
- 21 Mar, 2017 1 commit
-
-
Chris Wilson authored
The systematic error should be lost in the millions of cycles, but better pedagogically correct. Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-
- 22 Feb, 2017 1 commit
-
-
Chris Wilson authored
Signed-off-by:
Chris Wilson <chris@chris-wilson.co.uk>
-