summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2015-07-02aux: Don't evaluate several times the arguments of min() and max()Damien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-07-02stats: Add wikipedia links to get_trimean() and get_iqm()Damien Lespiau
Useful knowledge for anyone looking at the documentation and following the linkes. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-07-02docs: various documentation fixesThomas Wood
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-07-02docs: fix "no link" warningThomas Wood
igt_save_module_param is an internal static function and therefore isn't included in the public API documentation. Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-07-02docs: override section id to avoid '/' in filenamesThomas Wood
The section id is generated from the section title and is used to create the html output filename, which therefore causes problems if it includes a '/' character. Cc: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-07-01stats: Add trimeanChris Wilson
https://en.wikipedia.org/wiki/Trimean The trimean is a the most efficient 3-point L-estimator (estimator of central tendency, i.e. average), even more robust than the median at estimating the average of a sample population. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-07-01stats: Add the interquartile mean (IQM)Chris Wilson
https://en.wikipedia.org/wiki/Interquartile_mean The IQM is a truncated mean and so is very similar to the scoring method used in sports that are evaluated by a panel of judges: discard the lowest and the highest scores; calculate the mean value of the remaining scores. It's useful to hide outliers in measurements (due to cold cache etc), without having to worry too much about the actual distribution. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-06-27stats: Exercise the reallocation pathsDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Spwan igt_init_with_size() from igt_init()Damien Lespiau
It's all about good looking APIs. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Allow the underlying arrays to grow at willDamien Lespiau
Chris mentioned he wanted to be able to measure a variable "for one second" and use igt_stats to store them. That's one case where we don't know the number of data points upfront. We should really support that, so here it is. v2: Just free ->sorted when a new capacity is needed. ensure_sorted_values() will then reallocate the array to the new capacity on demand (Chris) Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Test we do correctly invalidate the sorted arrayDamien Lespiau
Chris had a doubt, and I was lazy and didn't do a similar test for the quartiles/median than for the mean (test_invalidate_mean()). Plug that gap. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add support for the interquartile range (IQR)Damien Lespiau
IQR is a good measure of dispersion. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add support for quartiles (and thus median)Damien Lespiau
More stuff, quite useful characteristics of a dataset. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add a bulk version of _push()Damien Lespiau
In case we want to push a bunch of values in one go. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Use igt_assert_eq_double() when asserting on doublesDamien Lespiau
Lucky enough to have exact values, == works! Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27lib: Add double versions of igt_assert_cmp() and igt_assert_eq()Damien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27docs: Add documentation for igt_assert_cmpuint()Damien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27docs: Add documentation for igt_assert_u32()Damien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27docs: Fix a "libraray" typoDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add igt_stats_get_range()Damien Lespiau
Somewhat useful, for instance to size an histogram. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add functions to retrieve min/max values of the datasetDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Factor out a fixture to initialize statsDamien Lespiau
We're going to use this simple fixture once more, might as well make a function instead of copy/pasting code. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add a note about the standard deviation derived from unbiased varianceDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add a getter for the population propertyDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add a way to specify if the data set is a population or a sampleDamien Lespiau
This changes how we compute the variance. We want an unbiased variance when reasoning about a sample. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add gtkdoc section for igt_statsDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add header gardsDamien Lespiau
Sigh. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27doc: Remove i-g-t/intel prefixes and capitalize section titlesDamien Lespiau
Looks better! Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Zero the whole structure at init() timeDamien Lespiau
Because the structure started small, I initialized every member directly, but that means that the new fields added weren't properly initialized (sigh!). Zero the whole thing first then. Also, the punishment for introducing a bug should be to write the corresponding unit test. It's not a perfect one, but I'll take it. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27tests/stats: Make sure we properly invalidate the cached meanDamien Lespiau
Sure, that's an implementation details, but make sure we do recompute the mean when we add a new value. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Add a way to retrieve the standard deviationDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Use an algorithm popularised by Knuth to compute mean and varianceDamien Lespiau
Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27tests/igt_stats: Call igt_stats_fini() to not leak the arrayDamien Lespiau
Sure, it'll be freed at exit(), but might as well be a bit pedantic. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-27stats: Be more precise and talk about mean, not averageDamien Lespiau
There are several types of averages eg. mean, median and mode. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-26lib/igt_draw: move to the GTT domain before using GTT mmapsPaulo Zanoni
With this, we don't need to worry about what happened to the buffer before. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-06-26lib/igt_core: fflush stdout after printing subtest resultsPaulo Zanoni
I often run "sudo ./test 2>&1 | tee output.txt", and when we're succeeding - never printing to stderr - the output gets buffered and is never flushed (because it doesn't point to a terminal), so I never know which test is running. With this fflush, I'm able to know when each test finishes. v2: Add blank line too (Chris) Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-06-25lib: Add a tiny utility function to compute averagesDamien Lespiau
The master plan would be to get a bit more stats in it, at least the standard deviation and confidence interval. Just need the average for now. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-06-24lib: Enable locale dependent output to a terminalChris Wilson
If we are in an interactive session, enable the locale. This allows for features like setting thousand separators for printing large values. By only enabling it for interactive terminals, we avoid changing outputs for the test scripts (leaving them as the "C" locale). Note this mainly affects the testcases, or binaries built using libigt. Other binaries need to be localised separately. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Michel Thierry <michel.thierry@intel.com>
2015-06-15lib: Use HAS_GPU_RESET rather than opencode our guessChris Wilson
Uses kernel commit 49e4d842f0d0892c3d26c93a81b9f22c1467030e Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Mon Jun 15 12:23:48 2015 +0100 drm/i915: Report to userspace if we have a (presumed) working GPU reset to determine whether the kernel has a working GPU reset before injecting a hang (and so skip tests requring hang recovery if not available).
2015-06-15lib/tests/igt_segfault Add unit test to test segfault handlingDerek Morton
Unit test to check a segfaulting subtest is handled correctly. v2: Added script to check subtest results v3: Removed script. Updated test to use fork to monitor return status. v4: Added igt_segfault to .gitignore Signed-off-by: Derek Morton <derek.j.morton@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-06-11lib/igt_aux: add functions to manipulate i915.ko parametersPaulo Zanoni
Some i915.ko features have very nice IGT tests, which are never executed because the features are disabled by default. This leads to unnoticed regressions both in the Kernel and in the IGT tests. We have seen this multiple times, for example, on FBC and PSR. We want to be able to run IGT and actually test these disabled-by-default features in order to make sure we at least don't break them even more. Sometimes they may be disabled for some specific reason, and we don't want to increase the set of reasons without noticing. To help solving this problem, this commit adds some helper functions that should make it easier to change certain i915.ko parameters and then restore their original values at the end of the test. With this, I'm hoping QA will be able to detect any regressions and automatically bisect them - or, with PRTS, reject the patches before they are even merged. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-05-28lib/igt_core.c: Flag the test as failing after a segfaultDerek Morton
fatal_signal_handler() was trapping fatal errors but not flagging the test as failing or setting an exit code. The result was that the test would return Ok or Skipped depending on what the other subtests did even though one of the subtests had segfaulted. Signed-off-by: Derek Morton <derek.j.morton@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-05-27lib: Enable building unit tests on androidDerek Morton
Add a make file for android so the unit tests can be built. Enabled asserts for the library code so the unit test behaviour is correct. Signed-off-by: Derek Morton <derek.j.morton@intel.com> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-05-18lib/bxt: Update the Broxton PCI IDsDamien Lespiau
Cc: Imre Deak <imre.deak@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-15lib: Add a user data pointer to the argument parsing functionsDamien Lespiau
It can be useful to have one of those to carry state between the handler parsing the options and the rest of the test. Right now the only thing we can do is to use global variables for that. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2015-05-14igt.cocci: don't use igt_assert_neq to compare pointersThomas Wood
igt_assert_neq can only compare integers, not pointers. Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-05-14docs: various documentation fixesThomas Wood
Fix various typos, add missing parameter documentation, include the igt_draw section and update the list of ignored headers. Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-05-14lib/debugfs: wait_for_keypress("crc") when collecting CRCPaulo Zanoni
Let's just steal the "crc" namespace and add this by default to igt_pipe_crc_collect_crc() instead of adding more calls to other tests. If tests want special waits on just some of their collect_crc() calls, they can use another name instead of "crc". This is very useful when developing, especially when the CRC we get is wrong: we want to look at the screen to see what's going on before we can think about how to fix the problem. So let's add this to the lib instead of adding this to every single test I need to debug. v2: Add some documentation (Daniel). Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-05-12igt_kms: Do not reset plane position on assigning a fbTvrtko Ursulin
commit a26f9f9ad0e679c7ce413a25d34f6914e1174151 Author: chandra konduru <chandra.konduru@intel.com> Date: Mon Mar 30 13:52:04 2015 -0700 i-g-t: Adding plane scaling test case Started doing this and broke kms_rotation_crc. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: chandra konduru <chandra.konduru@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-05-12igt_kms: Merge condition in igt_plane_set_fbTvrtko Ursulin
There were two paths for fb and !fb. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: chandra konduru <chandra.konduru@intel.com> Cc: Thomas Wood <thomas.wood@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>