[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z6HzmlUR1gdXJqXZ@phenom.ffwll.local>
Date: Tue, 4 Feb 2025 12:01:46 +0100
From: Simona Vetter <simona.vetter@...ll.ch>
To: Maxime Ripard <mripard@...nel.org>
Cc: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 1/4] drm/tests: hdmi: Fix WW_MUTEX_SLOWPATH failures
On Wed, Jan 29, 2025 at 03:21:53PM +0100, Maxime Ripard wrote:
> The light_up_connector helper function in the HDMI infrastructure unit
> tests uses drm_atomic_set_crtc_for_connector(), but fails when it
> returns an error.
>
> This function can return EDEADLK though if the sequence needs to be
> restarted, and WW_MUTEX_SLOWPATH is meant to test that we handle it
> properly.
>
> Let's handle EDEADLK and restart the sequence in our tests as well.
>
> Fixes: eb66d34d793e ("drm/tests: Add output bpc tests")
> Reported-by: Dave Airlie <airlied@...il.com>
> Closes: https://lore.kernel.org/r/CAPM=9tzJ4-ERDxvuwrCyUPY0=+P44orhp1kLWVGL7MCfpQjMEQ@mail.gmail.com/
> Link: https://lore.kernel.org/r/20241031091558.2435850-1-mripard@kernel.org
> Signed-off-by: Maxime Ripard <mripard@...nel.org>
> ---
> drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> index c3b693bb966f1f8b04066d19f520bfa4bf11c23d..e814b538c46c4d342604436beca64ac0bdb31526 100644
> --- a/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> +++ b/drivers/gpu/drm/tests/drm_hdmi_state_helper_test.c
> @@ -68,14 +68,21 @@ static int light_up_connector(struct kunit *test,
> int ret;
>
> state = drm_kunit_helper_atomic_state_alloc(test, drm, ctx);
> KUNIT_ASSERT_NOT_ERR_OR_NULL(test, state);
>
> +retry:
> conn_state = drm_atomic_get_connector_state(state, connector);
> KUNIT_ASSERT_NOT_ERR_OR_NULL(test, conn_state);
>
> ret = drm_atomic_set_crtc_for_connector(conn_state, crtc);
> + if (ret == -EDEADLK) {
> + drm_atomic_state_clear(state);
> + ret = drm_modeset_backoff(ctx);
> + if (!ret)
> + goto retry;
> + }
Reviewed-by: Simona Vetter <simona.vetter@...ll.ch>
> KUNIT_EXPECT_EQ(test, ret, 0);
>
> crtc_state = drm_atomic_get_crtc_state(state, crtc);
> KUNIT_ASSERT_NOT_ERR_OR_NULL(test, crtc_state);
>
>
> --
> 2.47.1
>
--
Simona Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
Powered by blists - more mailing lists