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

Peres, Martin martin.peres at intel.com
Thu Mar 21 13:59:42 UTC 2019


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.

Martin
---------------------------------------------------------------------
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki 
Business Identity Code: 0357606 - 4 
Domiciled in Helsinki 

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.



More information about the igt-dev mailing list