[igt-dev] [PATCH i-g-t] igt/tests: kms_plane_stress: Add plane stress test

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Thu Mar 21 14:06:33 UTC 2019


Op 21-03-2019 om 14:59 schreef Peres, Martin:
> On 21/03/2019 15:06, Maarten Lankhorst wrote:
>> Op 21-03-2019 om 13:59 schreef Lisovskiy, Stanislav:
>>> On Thu, 2019-03-21 at 13:41 +0100, Maarten Lankhorst wrote:
>>>> Op 21-03-2019 om 13:34 schreef Stanislav Lisovskiy:
>>>>> This test attempts to utilize all connected
>>>>> outputs at the same time, using maximum possible
>>>>> resolution and amount of planes, to check whether
>>>>> we are hiting any kind of bandwidth, watermark or
>>>>> other limitations.
>>>>>
>>>>> Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy at intel.com>
>>>>> ---
>>>>>  lib/igt_kms.h            |   7 ++
>>>>>  tests/Makefile.sources   |   1 +
>>>>>  tests/kms_plane_stress.c | 247
>>>>> +++++++++++++++++++++++++++++++++++++++
>>>>>  tests/meson.build        |   1 +
>>>>>  tests/test.png           | Bin 0 -> 1068158 bytes
>>>> Remove the test png? You can use cairo calls to draw something, or
>>>> igt_create_pattern_fb to get a default pattern.
>>> Yes, can remove it. Just wanted some nice image here, however probably
>>> yeah will leave it for local testing.
>>>
>>>> How is this different from kms_atomic_transition btw? It tries the
>>>> same at least.
>>> Well, I guess kms_atomic_transition doesn't utilize all pipe at the
>>> same time, it goes just one by one. Here it tries to use all pipes
>>> at the same time.
>>>
>> But it does have tests for all modes, see run_modeset_transition. Only thing missing is
>>
>> that we don't enable all planes yet. But this should be easy to add with try commit.
> The goal of this test is to be a pathological test case for the
> watermarks, which it has not reached yet. This test needs to enable all
> the pipe and all the planes, then increase the size of the planes until
> try-commit fails. Then we should commit the last-accepted configuration,
> and collect CRCs (check if they are stable) for 5 seconds. This could be
> named igt at kms_watermark@display, and I think we should iterate through a
> short list of formats that have widely different access patterns.
>
> Another subtest would do the same thing as display, but also add a
> thread that runs memcpy continuously. This could be
> igt at kms_watermark@display+cpu.
>
> Another subtest would also spawn a GPU kernel doing blits (this is
> faster than the blitter). This could be igt at kms_watermark@display+render
> and should skip on non-intel platforms.
>
> And finally, we could have a @all subtest that just tries running
> everything in parallel. I think @display and @all should be the only
> ones found in CI.
>
> At all time, the CRCs should not change and no underruns should be
> reported. Any failure is a failure from the kernel to set high-enough
> watermarks.
>
> If you think the right place for this is kms_atomic_transition, then I
> am fine with it.

kms_atomic_transition was meant to hit all kind of limitations, including testing all kind of transitions while all planes are enabled. Could be good for this kind of stuff too.




More information about the igt-dev mailing list