[Intel-gfx] Making IGT runnable by CI and developers

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Fri Jul 21 10:56:53 UTC 2017


On 20/07/2017 17:23, Martin Peres wrote:
> Hi everyone,
> 
> As some of you may already know, we have made great strides in making 
> our CI system usable, especially in the last 6 months when everything 
> started clicking together.
> 
> The CI team is no longer overwhelmed with fires and bug reports, so we 
> started working on increasing the coverage from just fast-feedback, to a 
> bigger set of IGT tests.
> 
> As some of you may know, running IGT has been a challenge that few 
> manage to overcome. Not only is the execution time counted in machine 
> months, but it can also lead to disk corruption, which does not 
> encourage developers to run it either. One test takes 21 days, on its 
> own, and it is a subset of another test which we never ran for obvious 
> reasons.
> 
> I would thus like to get the CI team and developers to work together to 
> decrease sharply the execution time of IGT, and get these tests run 
> multiple times per day!
> 
> There are three usages that the CI team envision (up for debate):
>   - Basic acceptance testing: Meant for developers and CI to check 
> quickly if a patch series is not completely breaking the world (< 10 
> minutes, timeout per test of 30s)
>   - Full run: Meant to be ran overnight by developers and users (< 6 hours)

We could start by splitting this budget to logical components/teams.

So far we have been talking about GEM and KMS, but I was just thinking 
that we may want to have a separate units on this level of likes of 
power management, DRM (core), external stuff like sw fences? TBD I guess.

Assuming GEM/KMS split only, fair thing seems to be split the time 
budget 50-50 and let the respective teams start working.

I assume this is x hours on the slowest machine?

Teams would also need easy access to up-to-date test run times.

>   - Stress tests: They can be in the test suite as a way to catch rare 
> issues, but they cannot be part of the default run mode. They likely 
> should be run on a case-by-case basis, on demand of a developer. Each 
> test could be allowed to take up to 1h.
> 
> There are multiple ways of getting to this situation (up for debate):
> 
>   1) All the tests exposed by default are fast and meant to be run:
>    - Fast-feedback is provided by a testlist, for BAT
>    - Stress tests ran using a special command, kept for on-demand testing
> 
>   2) Tests are all tagged with information about their exec time:
>    - igt at basic@.*: Meant for BAT
>    - igt at complete@.*: Meant for FULL
>    - igt at stress@.*: The stress tests
> 
>   3) Testlists all the way:
>    - fast-feedback: for BAT
>    - all: the tests that people are expected to run (CI will run them)
>    - Stress tests will not be part of any testlist.

I have a historical fondness for tagging and have just sent a v2 of my 
tagging RFC. There would be some work involved to convert all tests to 
support --list-subtest, but once there it sounds flexible and easy to 
use to me.

How well this would fit with the CI systems I don't have a good 
visibility to. So ultimately I don't care that much what gets picked 
unless it ends up being very cumbersome or work intensive for either side.

To re-iterate:

  * if we get a clear time allocation for GEM for example
  * URL showing us how do we stand relative to that dynamically
  * method of adding/removing tests to the default/full/extended 
(whatever people want to call it) test run

Then I think this is enough for us to start working towards the common goal.

> Whatever decision is being accepted, the CI team is mandating global 
> timeouts for both BAT and FULL testing, in order to guarantee 
> throughput. This will require the team as a whole to agree on time 
> quotas per sub-systems, and enforce them.

Is the current CI capable of adding together total per sub-system 
runtimes, and based on what does it do that? I am wondering about tests 
which do not prefix with gem_ or kms_ here.

Regards,

Tvrtko


More information about the Intel-gfx mailing list