Bug 111469 - [CI][SHARDS] igt@gem_exec_parallel@(bcs0-)?contexts - fail - Failed assertion: __gem_execbuf(fd, execbuf) == 0, error: -28 != 0
Summary: [CI][SHARDS] igt@gem_exec_parallel@(bcs0-)?contexts - fail - Failed assertion...
Status: RESOLVED WORKSFORME
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: Other All
: high not set
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-08-23 07:03 UTC by Martin Peres
Modified: 2019-09-07 11:41 UTC (History)
1 user (show)

See Also:
i915 platform: HSW
i915 features: GEM/Other


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Peres 2019-08-23 07:03:06 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6764/shard-hsw2/igt@gem_exec_parallel@bcs0-contexts.html

Starting subtest: bcs0-contexts
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Test assertion failure function gem_execbuf, file ../lib/ioctl_wrappers.c:609:
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: Failed assertion: __gem_execbuf(fd, execbuf) == 0
(gem_exec_parallel:3020) ioctl_wrappers-CRITICAL: error: -28 != 0
Subtest bcs0-contexts failed.
Comment 2 Chris Wilson 2019-08-23 07:45:19 UTC
That should never happen. It says we failed to make room for the context state...
Comment 3 Chris Wilson 2019-08-23 12:41:03 UTC
Hmm, not only that but it's happened more than once. Will be interesting to see it manifests in the next+1 drm-tip run and how widespread it is.
Comment 4 Chris Wilson 2019-08-23 12:48:18 UTC
1f7fd484fff1 drm/i915: Replace i915_vma_put_fence()
b7d151ba4b29 drm/i915: Pull obj->userfault tracking under the ggtt->mutex
e2ccc50a3a6c drm/i915: Track ggtt fence reservations under its own mutex

which are indeed related to GGTT management (and so the reported ENOSPC).

Odd. I would have thought

6846895fde05 ("drm/i915: Replace PIN_NONFAULT with calls to PIN_NOEVICT")

more likely, as that does directly change the eviction algorithm. At least it sounds like a promising direction.
Comment 5 Chris Wilson 2019-08-23 14:36:55 UTC
Oh well, it didn't spontaneously occur on my ivb (which should be the same wrt to context allocation... except a smaller context image) Bring out the hsw.
Comment 6 Chris Wilson 2019-08-23 18:22:44 UTC
It's a Haswell thing.
Comment 7 Chris Wilson 2019-08-23 18:56:47 UTC
It's a consequence of removing i915_retire_requests() from i915_gem_evict_something(). A necessary evil while the locking is changed. We should be able to return once we can retire without struct_mutex, although one can hope we wont need to.
Comment 8 CI Bug Log 2019-08-26 06:18:28 UTC
A CI Bug Log filter associated to this bug has been updated:

{- HSW: igt@gem_exec_parallel@(bcs0-)?contexts - fail - Failed assertion: __gem_execbuf(fd, execbuf) == 0, error: -28 != 0 -}
{+ HSW: igt@gem_exec_parallel@(bcs0-)?contexts - fail / timeout - Failed assertion: __gem_execbuf(fd, execbuf) == 0, error: -28 != 0 +}

New failures caught by the filter:

  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6774/shard-hsw1/igt@gem_exec_parallel@contexts.html
Comment 9 CI Bug Log 2019-08-26 06:19:05 UTC
A CI Bug Log filter associated to this bug has been updated:

{- HSW: igt@gem_exec_parallel@(bcs0-)?contexts - fail / timeout - Failed assertion: __gem_execbuf(fd, execbuf) == 0, error: -28 != 0 -}
{+ HSW: igt@gem_exec_parallel@(bcs0-|rcs0)?contexts - fail / timeout - Failed assertion: __gem_execbuf(fd, execbuf) == 0, error: -28 != 0 +}

New failures caught by the filter:

  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6775/shard-hsw6/igt@gem_exec_parallel@rcs0-contexts.html
Comment 10 Chris Wilson 2019-09-07 11:41:47 UTC
Fwiw, downgrading to aliasing-ppgtt makes the issue go away (no exhaustion from lots of ppGTT).


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.