Bug 106233 - [CI] igt@kms_cursor_legacy@cursor-vs-flip - Failed assertion: igt_ioctl((fd), ((((2U|1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | (((0xB2)) << 0) | ...
Summary: [CI] igt@kms_cursor_legacy@cursor-vs-flip - Failed assertion: igt_ioctl((fd),...
Status: REOPENED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: ReadyForDev
Keywords:
Depends on:
Blocks:
 
Reported: 2018-04-25 08:29 UTC by Martin Peres
Modified: 2019-09-20 00:33 UTC (History)
2 users (show)

See Also:
i915 platform: BSW/CHT
i915 features: display/Other


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Peres 2018-04-25 08:29:11 UTC
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.
Comment 1 Martin Peres 2018-06-15 09:00:34 UTC
No new failure since, closing!
Comment 2 Jani Saarinen 2018-06-19 14:25:55 UTC
Closing, thanks.
Comment 3 Martin Peres 2018-06-20 07:50:46 UTC
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.
Comment 4 Martin Peres 2018-07-24 13:32:31 UTC
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.
Comment 5 Martin Peres 2018-09-03 08:53:16 UTC
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.
Comment 7 Matt Roper 2019-09-20 00:33:07 UTC
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).


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.