Bug 104008 - [BAT][CI] igt@* - fail - Failed assertion: poll(&pfd, 1, 0) == 1
Summary: [BAT][CI] igt@* - fail - Failed assertion: poll(&pfd, 1, 0) == 1
Status: REOPENED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: Other All
: medium normal
Assignee: Petri Latvala
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: ReadyForDev
Keywords:
Depends on:
Blocks:
 
Reported: 2017-12-01 07:35 UTC by Marta Löfstedt
Modified: 2019-07-23 11:47 UTC (History)
1 user (show)

See Also:
i915 platform: BSW/CHT, BXT, BYT, CFL, GLK, ICL, KBL, SKL
i915 features: display/atomic


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marta Löfstedt 2017-12-01 07:35:34 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3425/fi-byt-n2820/igt@prime_vgem@basic-fence-flip.html

(prime_vgem:3936) CRITICAL: Test assertion failure function flip_to_vgem, file prime_vgem.c:694:
(prime_vgem:3936) CRITICAL: Failed assertion: poll(&pfd, 1, 0) == 1
(prime_vgem:3936) CRITICAL: error: 0 != 1
Subtest basic-fence-flip failed.

Also, here:

https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3422/shard-apl4/igt@prime_vgem@basic-fence-flip.html

However APL-shards are covered by bug 103182 which has another failed assertion.
Comment 1 Marta Löfstedt 2018-02-08 06:27:49 UTC
Also, here:
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3736/fi-skl-6770hq/igt@prime_vgem@basic-fence-flip.html

(prime_vgem:4676) CRITICAL: Test assertion failure function flip_to_vgem, file prime_vgem.c:694:
(prime_vgem:4676) CRITICAL: Failed assertion: poll(&pfd, 1, 0) == 1
(prime_vgem:4676) CRITICAL: error: 0 != 1
Subtest basic-fence-flip failed.
Comment 2 Marta Löfstedt 2018-02-13 07:43:46 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4249/fi-ilk-650/igt@prime_vgem@basic-fence-flip.html

(prime_vgem:4356) CRITICAL: Test assertion failure function flip_to_vgem, file prime_vgem.c:694:
(prime_vgem:4356) CRITICAL: Failed assertion: poll(&pfd, 1, 0) == 1
(prime_vgem:4356) CRITICAL: error: 0 != 1
Subtest basic-fence-flip failed.
Comment 3 Marta Löfstedt 2018-02-16 06:47:54 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4258/fi-ivb-3770/igt@prime_vgem@basic-fence-flip.html

(prime_vgem:4443) CRITICAL: Test assertion failure function flip_to_vgem, file prime_vgem.c:694:
(prime_vgem:4443) CRITICAL: Failed assertion: poll(&pfd, 1, 0) == 1
(prime_vgem:4443) CRITICAL: error: 0 != 1
Subtest basic-fence-flip failed.
Comment 4 Marta Löfstedt 2018-02-19 06:44:13 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3791/fi-byt-j1900/igt@prime_vgem@basic-fence-flip.html


(prime_vgem:3955) CRITICAL: Test assertion failure function flip_to_vgem, file prime_vgem.c:694:
(prime_vgem:3955) CRITICAL: Failed assertion: poll(&pfd, 1, 0) == 1
(prime_vgem:3955) CRITICAL: error: 0 != 1
Subtest basic-fence-flip failed.
Comment 5 Marta Löfstedt 2018-02-20 13:14:22 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4272/fi-bdw-5557u/igt@prime_vgem@basic-fence-flip.html
	

(prime_vgem:4302) CRITICAL: Test assertion failure function flip_to_vgem, file prime_vgem.c:694:
(prime_vgem:4302) CRITICAL: Failed assertion: poll(&pfd, 1, 0) == 1
(prime_vgem:4302) CRITICAL: error: 0 != 1
Subtest basic-fence-flip failed.
Comment 6 Marta Löfstedt 2018-02-20 14:04:58 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_3806/fi-pnv-d510/igt@prime_vgem@basic-fence-flip.html

(prime_vgem:3698) CRITICAL: Test assertion failure function flip_to_vgem, file prime_vgem.c:694:
(prime_vgem:3698) CRITICAL: Failed assertion: poll(&pfd, 1, 0) == 1
(prime_vgem:3698) CRITICAL: error: 0 != 1
Subtest basic-fence-flip failed.
Comment 7 Marta Löfstedt 2018-02-21 12:09:16 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4280/fi-skl-6260u/igt@prime_vgem@basic-fence-flip.html

(prime_vgem:4504) CRITICAL: Test assertion failure function flip_to_vgem, file prime_vgem.c:694:
(prime_vgem:4504) CRITICAL: Failed assertion: poll(&pfd, 1, 0) == 1
(prime_vgem:4504) CRITICAL: error: 0 != 1
Subtest basic-fence-flip failed.
Comment 8 Marta Löfstedt 2018-02-26 07:25:53 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4296/shard-apl1/igt@prime_vgem@basic-fence-flip.html

(prime_vgem:1752) CRITICAL: Test assertion failure function flip_to_vgem, file prime_vgem.c:694:
(prime_vgem:1752) CRITICAL: Failed assertion: poll(&pfd, 1, 0) == 1
(prime_vgem:1752) CRITICAL: error: 0 != 1
Subtest basic-fence-flip failed.
Comment 9 Marta Löfstedt 2018-04-03 12:07:06 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_8/fi-bsw-n3050/igt@kms_cursor_legacy@long-nonblocking-modeset-vs-cursor-atomic.html
	

(kms_cursor_legacy:1656) CRITICAL: Test assertion failure function nonblocking_modeset_vs_cursor, file ../tests/kms_cursor_legacy.c:834:
(kms_cursor_legacy:1656) CRITICAL: Failed assertion: 0 == poll(&pfd, 1, 0)
(kms_cursor_legacy:1656) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_cursor_legacy:1656) CRITICAL: error: 0 != 1
Subtest long-nonblocking-modeset-vs-cursor-atomic failed.
Comment 10 Marta Löfstedt 2018-04-18 10:27:39 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/IGT_4441/shard-apl3/igt@perf_pmu@interrupts-sync.html
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_22/fi-bsw-n3050/igt@perf_pmu@interrupts-sync.html

(perf_pmu:1516) CRITICAL: Test assertion failure function test_interrupts_sync, file ../tests/perf_pmu.c:1257:
(perf_pmu:1516) CRITICAL: Failed assertion: poll(&pfd, 1, 2 * timeout_ms) == 1
(perf_pmu:1516) CRITICAL: error: 0 != 1
Subtest interrupts-sync failed.
Comment 11 Martin Peres 2018-10-09 14:05:59 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_121/fi-bsw-n3050/igt@kms_cursor_legacy@nonblocking-modeset-vs-cursor-atomic.html

Starting subtest: nonblocking-modeset-vs-cursor-atomic
(kms_cursor_legacy:1006) CRITICAL: Test assertion failure function nonblocking_modeset_vs_cursor, file ../tests/kms_cursor_legacy.c:835:
(kms_cursor_legacy:1006) CRITICAL: Failed assertion: 0 == poll(&pfd, 1, 0)
(kms_cursor_legacy:1006) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_cursor_legacy:1006) CRITICAL: error: 0 != 1
Subtest nonblocking-modeset-vs-cursor-atomic failed.
Comment 12 Francesco Balestrieri 2018-12-11 09:25:05 UTC
Another recent occurrence on ILK: 

https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_159/fi-ilk-650/igt@prime_vgem@basic-fence-flip.html
Comment 14 Martin Peres 2019-04-12 13:31:49 UTC
There are two families of tests affected:

 - igt@prime_vgem@basic-fence-flip: This fail is happening mostly on ILK (74% of failures), with the rest happening only on gen9+ platforms. Failure rate: 16%

 - igt@kms_cursor_legacy@(long-)?nonblocking-modeset-vs-cursor-atomic: This failure is happening only on fi-bsw-n3050, on drmtip runs. Failure rate: 10%, 85% of the time on the "long" subtest, and the rest on the non-long one.
Comment 15 Chris Wilson 2019-04-12 13:35:01 UTC
prime_vgem/basic-fence-flip timing loop was rewritten and should avoid this problem

commit f43bb29c3e29143d8ad5fc70b82eccf5749d3958
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Apr 4 08:01:04 2019 +0100

    prime_vgem: Downgrade the severity of a single missed vblank on flipping
    
    Not displaying the flip on the next vblank is bad, but not the end of
    the world -- so long as that is only a temporary glitch. Give the vblank
    a few more frames to complete, and warn instead of failing if it takes
    more than one vblank interval to flip.
    
    v2: Bump the warning to >1 missed flip, to spare us the noise.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

commit f539e21e934019f0196fee646f351b4e30a8c341
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Apr 1 08:55:20 2019 +0100

    prime_vgem: Replace nanosleep with igt_waitchildren_timeout
    
    We want to use a child in order to detect an uninterruptable sleep (a
    potential bug we might hit), but we can use igt_waitchildren_timeout()
    to replace our risky self-signaling + nanosleep.
    
    v2: Remove the now redundant signal() setup.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103182
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Comment 16 Martin Peres 2019-04-12 13:41:12 UTC
(In reply to Chris Wilson from comment #15)
> prime_vgem/basic-fence-flip timing loop was rewritten and should avoid this
> problem
> 
> commit f43bb29c3e29143d8ad5fc70b82eccf5749d3958
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Thu Apr 4 08:01:04 2019 +0100
> 
>     prime_vgem: Downgrade the severity of a single missed vblank on flipping
>     
>     Not displaying the flip on the next vblank is bad, but not the end of
>     the world -- so long as that is only a temporary glitch. Give the vblank
>     a few more frames to complete, and warn instead of failing if it takes
>     more than one vblank interval to flip.
>     
>     v2: Bump the warning to >1 missed flip, to spare us the noise.
>     
>     Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
>     Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> 
> commit f539e21e934019f0196fee646f351b4e30a8c341
> Author: Chris Wilson <chris@chris-wilson.co.uk>
> Date:   Mon Apr 1 08:55:20 2019 +0100
> 
>     prime_vgem: Replace nanosleep with igt_waitchildren_timeout
>     
>     We want to use a child in order to detect an uninterruptable sleep (a
>     potential bug we might hit), but we can use igt_waitchildren_timeout()
>     to replace our risky self-signaling + nanosleep.
>     
>     v2: Remove the now redundant signal() setup.
>     
>     Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103182
>     Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
>     Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Thanks! Last failure seen was 8 days ago, so we'll monitor that.

However, I am lazy and I don't want to write another bug report for the other failures, so let's repurpose this bug for the other issue:

https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_250/fi-bsw-n3050/igt@kms_cursor_legacy@long-nonblocking-modeset-vs-cursor-atomic.html

Starting subtest: long-nonblocking-modeset-vs-cursor-atomic
(kms_cursor_legacy:2734) CRITICAL: Test assertion failure function nonblocking_modeset_vs_cursor, file ../tests/kms_cursor_legacy.c:837:
(kms_cursor_legacy:2734) CRITICAL: Failed assertion: 0 == poll(&pfd, 1, 0)
(kms_cursor_legacy:2734) CRITICAL: Last errno: 25, Inappropriate ioctl for device
(kms_cursor_legacy:2734) CRITICAL: error: 0 != 1
Comment 17 Petri Latvala 2019-04-12 13:43:57 UTC
That assertion failure for kms_cursor_legacy.c:837 is that poll() after setting pipe to PIPE_NONE and committing it is still saying i915 wants us to read an event.
Comment 18 Petri Latvala 2019-04-12 13:55:15 UTC
I'll work on making kms_cursor_legacy provide clearer error messages on its failures.
Comment 19 Francesco Balestrieri 2019-06-03 06:00:46 UTC
Can I move this to the display component?
Comment 20 Francesco Balestrieri 2019-07-23 08:13:10 UTC
Looks like this bug was repurposed to a KMS bug, updating component accordingly.
Comment 21 CI Bug Log 2019-07-23 11:47:10 UTC
A CI Bug Log filter associated to this bug has been updated:

{- fi-bsw-n3050: igt@kms_cursor_legacy@(long-)?nonblocking-modeset-vs-cursor-atomic - fail - Failed assertion: 0 == poll(&amp;pfd, 1, 0) -}
{+ fi-bsw-n3050 GLK: igt@kms_cursor_legacy@(long-)?nonblocking-modeset-vs-cursor-atomic - fail - Failed assertion: 0 == poll(&amp;pfd, 1, 0) +}


  No new failures caught with the new filter


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.