[igt-dev] [PATCH] tests/kms_atomic_transition: Address test flakiness

Drew Davenport ddavenport at chromium.org
Wed Aug 30 17:21:09 UTC 2023


Hi Juha-Pekka,

On Tue, Aug 29, 2023 at 10:01:54AM +0300, Juha-Pekka Heikkila wrote:
> Hi Drew,
> 
> can you show backtrace when the test failed for you? I was looking through
> stats how i915 have behaved with this and I didn't on brief look spot this
> ever hitting i915. Which driver you are seeing this issue with?

I see this test failing flakily on i915 and msm (I don't have recent
results on amdgpu but I suspect it would flake there too).

I don't have a backtrace, unfortunately, but the stack is:
igt_assert_eq
igt_display_commit_atomic
commit_display
run_modeset_tests

I've posted verbose logs on the issue I opened on gitlab and tagged you
there. Happy to dig further here or on the issue tracker.

> 
> Current stats on ci for i915 look like this (for me it look all green where
> run)
> 
> https://intel-gfx-ci.01.org/tree/drm-tip/shards-all.html?testfilter=kms_atomic_transition.*nonblocking
> 
> Here are some issues but they all did look like connector related issues:
> https://intel-gfx-ci.01.org/tree/drm-tip/drmtip.html?testfilter=kms_atomic_transition.*nonblocking
> 
> /Juha-Pekka
> 
> On 28.8.2023 23.23, Drew Davenport wrote:
> > Nonblocking commits can sometimes return -EBUSY. It's expected that
> > this error is transient and that userspace should retry the commit.
> > 
> > Since kms_atomic_transition uses nonblocking commits for some test
> > cases, the test fails flakily.
> > 
> > This change will handle -EBUSY to ensure that the test does not
> > fail in that case.
> > 
> > Closes: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/144
> > Signed-off-by: Drew Davenport <ddavenport at chromium.org>
> > 
> > ---
> > 
> >   tests/kms_atomic_transition.c | 6 +++++-
> >   1 file changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
> > index 6ab5267ca..46ce9f929 100644
> > --- a/tests/kms_atomic_transition.c
> > +++ b/tests/kms_atomic_transition.c
> > @@ -683,7 +683,11 @@ static void commit_display(data_t *data, unsigned event_mask, bool nonblocking)
> >   	if (nonblocking)
> >   		flags |= DRM_MODE_ATOMIC_NONBLOCK;
> > -	igt_display_commit_atomic(&data->display, flags, NULL);
> > +	do {
> > +		ret = igt_display_try_commit_atomic(&data->display, flags, NULL);
> > +	} while (ret == -EBUSY);
> > +
> > +	igt_assert_eq(ret, 0);
> >   	igt_debug("Event mask: %x, waiting for %i events\n", event_mask, num_events);
> 


More information about the igt-dev mailing list