[igt-dev] [PATCH i-g-t] tests/kms_cursor_legacy: Remove vblank counter check immediately after flip_nonblocking

Ville Syrjälä ville.syrjala at linux.intel.com
Fri Dec 17 12:51:00 UTC 2021


On Fri, Dec 10, 2021 at 09:20:06AM -0800, Jessica Zhang wrote:
> Currently, there is a check that the vblank counter shouldn't change after
> a nonblocking page flip and DRM_IOCTL_MODE_CURSOR call. This assumes
> that ioctl is performed before the commit from the nonblocking flip is
> dequeued.
> 
> The DRM_IOCTL_MODE_CURSOR callstack is as such:
> 	drm_mode_cursor_ioctl
> 	drm_mode_cursor_common
> 	drm_mode_cursor_universal
> 	__setplane_atomic
> 	drm_atomic_helper_update_plane
> 	drm_atomic_commit
> 
> Becuase the commit work queue is scheduled earlier than
> DRM_CURSOR_IOCTL, it will finish before the ioctl. Thus, we can't
> assume that the current vblank count will match vblank_start after the
> cursor ioctl finishes.

Your driver is broken. The legacy cursor ioctl is expected to
not get stuck behind the page flip.

> 
> Tested-on: Chromebook Lazor (Trogdor)
> 
> Signed-off-by: Jessica Zhang <quic_jesszhan at quicinc.com>
> ---
>  tests/kms_cursor_legacy.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
> index d50155e8..82c01bc8 100644
> --- a/tests/kms_cursor_legacy.c
> +++ b/tests/kms_cursor_legacy.c
> @@ -1307,8 +1307,6 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic)
>  		flip_nonblocking(display, pipe, atomic, &fb_info, NULL);
>  		do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[i]);
>  
> -		igt_assert_eq(kmstest_get_vblank(display->drm_fd, pipe, 0), vblank_start);
> -
>  		igt_set_timeout(1, "Stuck page flip");
>  		igt_ignore_warn(read(display->drm_fd, &vbl, sizeof(vbl)));
>  		igt_reset_timeout();
> -- 
> 2.31.0

-- 
Ville Syrjälä
Intel


More information about the igt-dev mailing list