summaryrefslogtreecommitdiff
path: root/lib/igt_core.h
AgeCommit message (Collapse)Author
2022-06-28tests/kms_writeback: Use endianness accessor to fill pixelsMaxime Ripard
The fill_fb() function in the kms_writeback test suite will fill an XRGB8888 buffer using a pattern passed an an argument. However, the pattern is native endian, while XRGB8888 is little-endian. Add an accessor and use it to fill the framebuffer with our pattern. Acked-by: Pekka Paalanen <pekka.paalanen@collabora.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
2022-05-18lib/igt_core: export kill_children() functionMauro Carvalho Chehab
This function is needed outside igt_core. So, make it exportable, and allow passing different signs to the children. Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
2022-02-22lib: Use safe wrappers around libpciaccess initialization functionsJanusz Krzysztofik
Multiple calls to igt functions using pci_system_init() provided by libpciaccess result in memory leaking if not followed by its counterpart pci_system_cleanup() before next use. On the other hand, calling pci_system_cleanup() can affect other users which still depend on global data initialized by pci_system_init(). Introduce safe IGT wrappers around those libpciaccess functions and use those wrappers in IGT library and tests. Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> [jkrzyszt: shorten excessive long name of hidden variable (Chris)] Reviewed-by: Chris Wilson <chris.p.wilson@intel.com>
2021-11-18igt_core: Fix docs for SLOW_QUICKPetri Latvala
The macro is for choosing between two values depending on whether IGT has been told it's running in simulation mode. The parameter names and their documentation was the opposite of what actually happened. The only user, gem_lut_handle, uses the macro correctly, having the "use this value in simulation mode" value as the second parameter. v2: Remove confusion on whether "slow" means "slow test" or "slow platform" by using "hw" and "sim" instead. (Ashutosh) Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arek@hiler.eu> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
2021-10-08lib: Refactor construction of unique tokensChris Wilson
Wrap all the igt_tokencat(prefix, __LINE) into its own igt_unique() to reduce the clutter and make it easier to generate unique tokens for other common macros. Signed-off-by: Chris Wilson <chris.p.wilson@intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
2021-08-10lib/core: Add igt_debug_on* variantsJanusz Krzysztofik
If a test calls a function which can return a failure, only the fact that the function failed can be reported to the caller, with no details on what actually failed inside. It could be helpful if functions which perform several steps or iterations emitted debug messages with failure details. To simplify coding and avoid code duplication in functions, igt_debug variants similar to igt_warn_on and friends could be useful. Add them. Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Acked-by: Petri Latvala <petri.latvala@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>
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-09-30lib/igt_core: Add igt_require_fd()Lyude Paul
Like igt_assert_fd(), but using igt_require() instead Changes since v1: * Fix documentation error in igt_require_fd() - Petri Latvala Reviewed-by: Jeremy Cline <jcline@redhat.com> Signed-off-by: Lyude Paul <lyude@redhat.com>
2020-09-30lib/igt_core: Fix igt_assert_fd() documentationLyude Paul
As Petri Latvala pointed out, some of the documentation in this macro is mistakenly copied from the other igt_assert*() macros. Let's fix that. Reviewed-by: Jeremy Cline <jcline@redhat.com> Signed-off-by: Lyude Paul <lyude@redhat.com>
2020-05-22i915: Add gem_exec_endlessChris Wilson
Start our preparations for guaranteeing endless execution. First, we just want to estimate the direct userspace dispatch overhead of running an endless chain of batch buffers. The legacy binding process here will be replaced by async VM_BIND, but for the moment this suffices to construct the GTT as required for arbitrary indirect execution. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-03-23lib: Make it possible to abort the whole execution from inside of a testArkadiusz Hiler
igt_abort_on_f() is introduced which does very little cleanup and causes a hard exit() of the test binary with a unique exit code (IGT_EXIT_ABORT). The exit code informs the monitoring process that there is a critical issue with the testing environment which may have an impact on the results if testing continues. v2: Add a meta_test Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-03-17lib/igt_core: Make igt_subtest_jmpbuf/igt_dynamic_jmpbuf externLyude Paul
Since gcc 10, -fno-common has become the default (vs. -fcommon). As a result, gcc is much stricter about missing extern and static keywords and causes our build to fail in anything including igt_core.h: /usr/bin/ld: lib/libigt-i915_gem_context_c.a(i915_gem_context.c.o):lib/igt_core.h:149: multiple definition of `igt_dynamic_jmpbuf'; lib/libigt-drmtest_c.a(drmtest.c.o):lib/igt_core.h:149: first defined here /usr/bin/ld: lib/libigt-i915_gem_context_c.a(i915_gem_context.c.o):lib/igt_core.h:148: multiple definition of `igt_subtest_jmpbuf'; lib/libigt-drmtest_c.a(drmtest.c.o):lib/igt_core.h:148: first defined here So, fix this by marking these as extern and declaring them in lib/igt_core.c. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Lyude Paul <lyude@redhat.com>
2019-11-19Rename dynamic subtest blocksPetri Latvala
The final naming for the magic block identifiers is: igt_subtest_with_dynamic("do-stuff-on-things") { for_each_thing(x) { igt_dynamic_f("%s", x->name) { do_stuff(x); } } } Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Katarzyna Dec <katarzyna.dec@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-11-15lib: Introduce dynamic subsubtestsPetri Latvala
Dynamic subsubtests, or subtests of subtests, are individual pieces of tests that are not statically available all the time. A good example of a need for a dynamic subsubtest is i915 engine listing: A normal subtest for each engine class ("bsd"), and a dynamic subsubtest for each instance ("bsd0", "bsd2", etc). Or a normal subtest for an operation with a dynamic subsubtest for every engine there is. Another example is dynamic subsubtests for pipes: Instead of using foreach_pipe_static, make one subtest and use foreach_pipe with dynamic subsubtests for each pipe. v2: Rebase and adapt to igt_describe changes v3: Rename to igt_subtest_with_dynamic_subsubtests & igt_dynamic_subsubtest, better docs, make igt_describe fail loudly if it's used in an impossible context. v4: Mention dynamic blocks in the warning for longjmp in core docs. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-10-18lib: Add igt_trace()Ville Syrjälä
Add igt_trace() which can be used to inject messages into the kernel ftrace buffer via the trace_marker file. Quite useful when trying to correlate test case activity with kernel tracepoints. v2: Use igt_debugfs_mount() (Chris) Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-09-17lib: Export a function for loading igtrcPetri Latvala
Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-07-08lib/igt_core: Add support for subtest descriptionsArkadiusz Hiler
This patch adds igt_description() which attaches a description to the following igt_subtest or igt_subtest_group block. Descriptions are accessible via './test --describe[=pattern]' Subtest description is its own igt_describe as well as igt_describes of all the parenting igt_subtest_groups, starting from the outermost scope. Examples of code and produced outputs are included in lib/test/igt_describe.c and as a documentation comment on igt_describe() macro. v2: address Simon's review Cc: Simon Ser <simon.ser@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Simon Ser <simon.ser@intel.com>
2019-07-03lib: Add --skip-crc-compare optionMatt Roper
When using --interactive-debug, it's sometimes desirable to ignore CRC mismatches and let the test proceed as if they passed so that the on-screen outcome can be inspected. Let's add a debug option to allow this. Cc: igt-dev@lists.freedesktop.org Signed-off-by: Matt Roper <matthew.d.roper@intel.com> [vsyrjala: pimp the debug message to indicate the skip] Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-05-27lib: Document igt_opt_handler_t semanticsPetri Latvala
Best practices for the help string formatting, along with explicit symbols for the possible return values for the callback. Also documented: Do not call the _parse_opts functions yourself, use igt_main_args or igt_simple_main_args. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-05-27lib: Introduce main function macros with custom argsPetri Latvala
Instead of using a custom main function and calling igt_subtest_init_parse_opts / igt_simple_init_parse_opts, the _args variants of igt_main and igt_simple_main take the relevant parameters and pass them along to the correct init function. Open-coding a custom main function is no longer necessary and not recommended. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Don Hiatt <don.hiatt@intel.com>
2019-05-07lib/tests: Fix test failures with meson 0.50.0Lyude Paul
Since meson 0.50.0, unit tests which return the GNU standard return code 99 will fail, regardless of whether or not should_fail:true is passed to test(). Unfortunately, our standard error code (IGT_EXIT_FAILURE) is also 99. So, fix this by changing our standard error code to 98. Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Lyude Paul <lyude@redhat.com>
2019-02-15lib: Drop IGT_EXIT_TIMEOUTDaniel Vetter
We use the timeout status for when the runner had to kill a testcase, which indicates a more sever issue than an operation failing that we expected to complete within seconds. Since it's unused, drop it. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2019-02-15lib: Drop igt_child_doneDaniel Vetter
Added in commit 054eb1abecd1cce2e4ee0516f3ff8a67a35dca22 Author: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Date: Thu Mar 30 14:32:29 2017 +0100 benchmarks/gem_wsim: Command submission workload simulator but since then the only user was lost. Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2019-01-21lib: Introduce BUILD_BUG_ON_INVALID and igt_assume()Petri Latvala
BUILD_BUG_ON_INVALID() is a macro that, like the kernel counterpart, expands to an expression that generates no code. Useful for making sure an expression is valid code while producing no side effects. igt_assume() is an assert-like macro that is used to give hints to static analysis of code. If static analysis is not used (as detected by STATIC_ANALYSIS_BUILD), igt_assume() expands to a BUILD_BUG_ON_INVALID, otherwise expands to an assert(). v2: Make sure the expression in igt_assume is still parsed without static analysis. (Chris) v3: Also introduce BUILD_BUG_ON_INVALID as standalone Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-11-01lib: Help static analyzers figure out the execution flowPetri Latvala
When running any kind of static analysis on IGT, one tends to drown in warnings about using uninitialized variables in subtests, because static analysis is unable to figure out that igt_fixture blocks are always entered if a subtest block is entered. Aid the discovery of correct execution flow by making static analysis always enter all igt_fixture blocks and all subtest blocks. Automatic discovery of static analyzers is done for Clang, Coverity and Klocwork, using macros found by quick googling. For explicit control on possible other analyzers, defining STATIC_ANALYSIS_BUILD=1 manually will activate this hack. v2: - Hack not needed for igt_subtest() - Make sure igt_fixture is entered once instead of an infinite loop v3: - Rebase properly... Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-08-09lib: Export igt_gettime and igt_time_elapsedPetri Latvala
Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-07-13lib/gt: Make use of dummyload library to create recursive batchAntonio Argenziano
An hanging batch is nothing more than a spinning batch that never gets stopped, so re-use the routines implemented in dummyload.c. v2: Let caller decide spin loop size v3: Only use loose loops for hangs (Chris) v4: No requires v5: Free the spinner v6: Chamelium exists. Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com> #v3 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
2018-06-08igt/drv_suspend: Suspend under memory pressureChris Wilson
Recently we discovered that we have a race between swapping and suspend in our resume path (we might be trying to page in an object after disabling the block devices). Let's try to exercise that by exhausting all of system memory before suspend. v2: Explicitly share the large memory area on forking to avoid running out of memory inside the suspend helpers (for they fork!) References: https://bugs.freedesktop.org/show_bug.cgi?id=106640 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
2018-04-27tests/kms_properties: Validate properties harderVille Syrjälä
Make the property validation more thorough: - validate property flags - make sure there's an expected number of values/enums - make sure the possible values make sense - make sure the current value makes sense - actually iterate through all planes/crtc/connectors to check their properties - make sure encoders don't expose properties while at it - check that atomic props aren't exposed to non-atomic clients Still passes on my ivb. Not tested anything else so far. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
2018-03-26lib/dummyload: Add pollable spin batchTvrtko Ursulin
Pollable spin batch exports a spin->running pointer which can be checked by dereferencing it to see if the spinner is actually executing on the GPU. This is useful for tests which want to make sure they do not proceed with their next step whilst the spinner is potentially only being processed by the driver and not actually executing. Pollable spinner can be created with igt_spin_batch_new_poll or __igt_spin_batch_new_poll, after which igt_spin_busywait_until_running can be used to busy wait until it is executing. v2: * Move READ_ONCE to igt_core. * Add igt_spin_busywait_until_running. (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-05tests/perf_pmu: Handle CPU hotplug failures betterChris Wilson
CPU hotplug, especially CPU0, can be flaky on commodity hardware. To improve test reliability and reponse times when testing larger runs we need to handle those cases better. Handle failures to off-line a CPU by immediately skipping the test, and failures to on-line a CPU by immediately rebooting the machine. This patch includes igt_sysrq_reboot implementation from Chris Wilson. v2: Halt by default, reboot if env variable IGT_REBOOT_ON_FATAL_ERROR is set. (Petri Latvala) v3: Add missign docs and update stale comment. (Petri Latvala) v4: Use pause instead of sleep. (Chris Wilson) v5: Newlines! (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2018-02-27lib: Export kmsg()Chris Wilson
Export the kmsg() function for use by tests to write into the kernel message log, useful for tests to inline their progress with kernel error messages. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-10-03lib: Reduce dependency on glibPetri Latvala
In commit ebd6eb69f57b ("Make igtrc configuration common, with configurable suspend/resume delay") .igtrc handling was moved to igt_core from igt_chamelium. That made everything in IGT depend on GLIB by accident. In short, igt_core.h declared a variable of type GKeyFile*, requiring glib.h. Everything that tried to #include igt_core.h required glib.h to be available, by use of GLIB_CFLAGS. This "worked" so far because CAIRO_CFLAGS contained GLIB_CFLAGS. As the variable is only used by other stuff in lib/, stuff it in its own header file to leave igt_core.h without a dependency to glib.h. Also add a couple of missing #ifdef HAVE_GLIBs around. Reported-by: Felipe De Jesus Ruiz Garcia <felipe.de.jesus.ruiz.garcia@intel.com> Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-09-08lib: prefix frame_dump_pathDaniel Vetter
Just a bit of ocd for anything non-static. Acked-by: Jani Nikula <jani.nikula@intel.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com> Acked-by: Daniel Stone <daniels@collabora.com> Acked-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-09-05igt_core: Skip sync when listing subtestsTvrtko Ursulin
No need to sync filesystems when only listing subtest. Extremely marginal benefit of avoid a short stall after make followed by listing subtests. v2: Move sync to common_init for consolidation and simplicity. (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-08-14lib: Add igt_can_fail()Daniel Vetter
Useful to make sure folks use library helpers correctly. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-07-19Introduce common frame dumping configuration and helpersPaul Kocialkowski
This introduces a common FrameDumpPath configuration field, as well as helper functions in dedicated igt_frame for writing cairo surfaces to png files. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude <lyude@redhat.com>
2017-07-06Make igtrc configuration common, with configurable suspend/resume delayPaul Kocialkowski
This adds support for configurable suspend/resume delay and takes the occasion to move igtrc configuation from igt_chamelium to igt_core. This way, suspend/resume delay configuration can be used for all tests. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-06-14igt/igt_core: Provide an option to check for the log buffer contentsAbdiel Janulgue
Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-06-14lib/igt_core: Add igt_system helpersAbdiel Janulgue
Support executing external processes with the goal of capturing its standard streams to the igt logging infrastructure in addition to its exit status. v3: Rename igt_exec -> igt_system (Chris). v2: Fix leaks on fd teardown. Make sure redirected process printout when > 64kb still works, like full dmesg. (Petri). Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-04-25benchmarks/gem_wsim: Command submission workload simulatorTvrtko Ursulin
Tool which emits batch buffers to engines with configurable sequences, durations, contexts, dependencies and userspace waits. Unfinished but shows promise so sending out for early feedback. v2: * Load workload descriptors from files. (also -w) * Help text. * Calibration control if needed. (-t) * NORELOC | LUT to eb flags. * Added sample workload to wsim/workload1. v3: * Multiple parallel different workloads (-w -w ...). * Multi-context workloads. * Variable (random) batch length. * Load balancing (round robin and queue depth estimation). * Workloads delays and explicit sync steps. * Workload frequency (period) control. v4: * Fixed queue-depth estimation by creating separate batches per engine when qd load balancing is on. * Dropped separate -s cmd line option. It can turn itself on automatically when needed. * Keep a single status page and lie about the write hazard as suggested by Chris. * Use batch_start_offset for controlling the batch duration. (Chris) * Set status page object cache level. (Chris) * Moved workload description to a README. * Tidied example workloads. * Some other cleanups and refactorings. v5: * Master and background workloads (-W / -w). * Single batch per step is enough even when balancing. (Chris) * Use hars_petruska_f54_1_random IGT functions and see to zero at start. (Chris) * Use WC cache domain when WC mapping. (Chris) * Keep seqnos 64-bytes apart in the status page. (Chris) * Add workload throttling and queue-depth throttling commands. (Chris) v6: * Added two more workloads. * Merged RT balancer from Chris. v7: * Merged NO_RELOC patch from Chris. * Added missing RT balancer to help text. TODO list: * Fence support. * Batch buffer caching (re-use pool). * Better error handling. * Less 1980's workload parsing. * More workloads. * Threads? * ... ? Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: "Rogozhkin, Dmitry V" <dmitry.v.rogozhkin@intel.com>
2017-02-07igt/core: Return condition result from igt_warn_on*()Lyude
This allows us to be a little more flexible with how we use igt_warn_on() and igt_warn_on_f() by allowing us to write statements like this: if (igt_warn_on(scary_condition)) { /* some error handling... */ } Signed-off-by: Lyude <lyude@redhat.com>
2017-01-03igt_core: add igt_constructorLyude
This is a simple macro for executing a block of code at the beginning of intel-gpu-tools, before any tests have been ran. Useful for initialization of global resources used in IGT libraries. Signed-off-by: Lyude <lyude@redhat.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Changes since v1: - Add the line number into the name of the constructor function so that multiple constructors may be used per-file.
2016-11-15lib: Add missing include for sync()Petri Latvala
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>
2016-11-07igt: Add a test for reordering execbufsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-10-13igt/gem_wait: Use explicit timersChris Wilson
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>
2016-07-27lib: Update igt_core docsDaniel Vetter
Just missing comment for igt_log_level. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-06-23Silence compiler warnings for expected and handled error conditionsChris Wilson
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>
2016-05-27igt_core: Search "." as final fallback for igt_fopen_data()Matt Roper
Some validation teams seem to run tests out of source directories that have been nfs mounted or rsync'd to different locations on the target machine. This causes the igt_srcdir that the tests were built with to be invalid on the machine the tests get run on. Add the current directory as a final fallback for data file searches. Reference: https://bugs.freedesktop.org/show_bug.cgi?id=92248 Cc: Humberto Israel Perez Rodriguez <humberto.i.perez.rodriguez@intel.com> Signed-off-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>