https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_14/fi-bsw-n3050/igt@kms_cursor_legacy@cursor-vs-flip-varying-size.html https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_14/fi-bsw-n3050/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_15/fi-bsw-n3050/igt@kms_cursor_legacy@cursor-vs-flip-varying-size.html https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_15/fi-bsw-n3050/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_16/fi-bsw-n3050/igt@kms_cursor_legacy@cursor-vs-flip-varying-size.html https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_16/fi-bsw-n3050/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_18/fi-bsw-n3050/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_23/fi-bsw-n3050/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_25/fi-bsw-n3050/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions-varying-size.html https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_26/fi-bsw-n3050/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions-varying-size.html (kms_cursor_legacy:1654) CRITICAL: Test assertion failure function flip, file ../tests/kms_cursor_legacy.c:420: (kms_cursor_legacy:1654) CRITICAL: Failed assertion: igt_ioctl((display->drm_fd), ((((2U|1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | (((0xA3)) << 0) | ((((sizeof(struct drm_mode_cursor)))) << ((0+8)+8)))), (&arg[(count & 64)/64])) == 0 (kms_cursor_legacy:1654) CRITICAL: Last errno: 22, Invalid argument (kms_cursor_legacy:1654) CRITICAL: error: -1 != 0 Subtest cursorA-vs-flipA-atomic-transitions-varying-size failed.
No new failure since, closing!
Closing, thanks.
Seen again! https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_67/fi-bsw-n3050/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html (kms_cursor_legacy:1491) CRITICAL: Test assertion failure function flip_vs_cursor, file ../tests/kms_cursor_legacy.c:717: (kms_cursor_legacy:1491) CRITICAL: Failed assertion: igt_ioctl((display->drm_fd), ((((2U|1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | (((0xA3)) << 0) | ((((sizeof(struct drm_mode_cursor)))) << ((0+8)+8)))), (&arg[nloops & 1])) == 0 (kms_cursor_legacy:1491) CRITICAL: Last errno: 22, Invalid argument (kms_cursor_legacy:1491) CRITICAL: error: -1 != 0 Subtest flip-vs-cursor-varying-size failed.
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_77/fi-bsw-n3050/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html (kms_cursor_legacy:2594) CRITICAL: Test assertion failure function flip_vs_cursor, file ../tests/kms_cursor_legacy.c:717: (kms_cursor_legacy:2594) CRITICAL: Failed assertion: igt_ioctl((display->drm_fd), ((((2U|1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | (((0xA3)) << 0) | ((((sizeof(struct drm_mode_cursor)))) << ((0+8)+8)))), (&arg[nloops & 1])) == 0 (kms_cursor_legacy:2594) CRITICAL: Last errno: 22, Invalid argument (kms_cursor_legacy:2594) CRITICAL: error: -1 != 0 Subtest flip-vs-cursor-varying-size failed.
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_93/fi-bsw-n3050/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html (kms_cursor_legacy:1859) CRITICAL: Test assertion failure function flip_vs_cursor, file ../tests/kms_cursor_legacy.c:718: (kms_cursor_legacy:1859) CRITICAL: Failed assertion: igt_ioctl((display->drm_fd), ((((2U|1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | (((0xA3)) << 0) | ((((sizeof(struct drm_mode_cursor)))) << ((0+8)+8)))), (&arg[nloops & 1])) == 0 (kms_cursor_legacy:1859) CRITICAL: Last errno: 22, Invalid argument (kms_cursor_legacy:1859) CRITICAL: error: -1 != 0 Subtest flip-vs-cursor-atomic-transitions-varying-size failed.
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_137/fi-bsw-n3050/igt@kms_cursor_legacy@cursora-vs-flipa-atomic-transitions-varying-size.html
The failures here are because the DRM_IOCTL_MODE_CURSOR is being rejected by the kernel because the pipe C cursor is straddling the left edge of the CRTC. Although that would usually okay (planes will be clipped if partially offscreen), this causes hardware failures on CHV pipe C so we prohibit it in that specific case. Interestingly, I don't see anywhere in this test where we actually try to position the cursor partially offscreen. Also, positioning the cursor partially offscreen should fail every time, whereas the behavior here seems random (but only in the 'varying size' subtests). There may be a bug in the test somewhere (e.g., a buffer overflow or uninitialized field that results in different random/wrong values being used as the cursor x coordinate) or there may be a kernel bug causing us to corrupt the cursor's coordinates when we're changing the cursor size. The next step for debugging would probably be to check and see what coordinates actually are being requested in the cases where this fails so that we can figure out if we have a consistent logic error somewhere or whether there's some random memory corruption going on (either in the test or in the driver).
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/intel/issues/112.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.