Bug 111469

Summary: [CI][SHARDS] igt@gem_exec_parallel@(bcs0-)?contexts - fail - Failed assertion: __gem_execbuf(fd, execbuf) == 0, error: -28 != 0
Product: DRI Reporter: Martin Peres <martin.peres>
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: RESOLVED WORKSFORME QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: not set    
Priority: high CC: intel-gfx-bugs
Version: XOrg git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: HSW i915 features: GEM/Other

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).
Comment 11 CI Bug Log 2019-12-02 06:45:51 UTC
A CI Bug Log filter associated to this bug has been updated:

{- HSW: igt@gem_exec_parallel@(bcs0-|rcs0)?contexts - fail / timeout - Failed assertion: __gem_execbuf(fd, execbuf) == 0, error: -28 != 0 -}
{+ HSW: igt@gem_exec_parallel@* - 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_7448/shard-hsw4/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7448/shard-hsw5/igt@gem_exec_parallel@vcs0-contexts.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7448/shard-hsw5/igt@gem_exec_parallel@vcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7448/shard-hsw6/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7448/shard-hsw6/igt@gem_exec_parallel@vecs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7448/shard-hsw7/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7449/shard-hsw4/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7449/shard-hsw5/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7449/shard-hsw5/igt@gem_exec_parallel@vcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7449/shard-hsw6/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7449/shard-hsw7/igt@gem_exec_parallel@vcs0-contexts.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7450/shard-hsw1/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7450/shard-hsw1/igt@gem_exec_parallel@vecs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7450/shard-hsw4/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7450/shard-hsw6/igt@gem_exec_parallel@vcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7450/shard-hsw6/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7451/shard-hsw1/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7451/shard-hsw5/igt@gem_exec_parallel@vcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7451/shard-hsw7/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5319/shard-hsw1/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5319/shard-hsw1/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5319/shard-hsw1/igt@gem_exec_parallel@vecs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5319/shard-hsw6/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7453/shard-hsw1/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7453/shard-hsw1/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7453/shard-hsw5/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7453/shard-hsw6/igt@gem_exec_parallel@vecs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7454/shard-hsw1/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7454/shard-hsw4/igt@gem_exec_parallel@vecs0-contexts.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7454/shard-hsw4/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7454/shard-hsw5/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7455/shard-hsw1/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7455/shard-hsw1/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7455/shard-hsw5/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7455/shard-hsw6/igt@gem_exec_parallel@vecs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5320/shard-hsw4/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5320/shard-hsw5/igt@gem_exec_parallel@vecs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5320/shard-hsw6/igt@gem_exec_parallel@vcs0-contexts.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5320/shard-hsw7/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7456/shard-hsw4/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7456/shard-hsw5/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7456/shard-hsw5/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7456/shard-hsw7/igt@gem_exec_parallel@vcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7457/shard-hsw4/igt@gem_exec_parallel@bcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7457/shard-hsw5/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7457/shard-hsw6/igt@gem_exec_parallel@vcs0-contexts.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7457/shard-hsw7/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7457/shard-hsw7/igt@gem_exec_parallel@vecs0-contexts.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7458/shard-hsw1/igt@gem_exec_parallel@vcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7458/shard-hsw5/igt@gem_exec_parallel@fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7458/shard-hsw5/igt@gem_exec_parallel@rcs0-fds.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7458/shard-hsw6/igt@gem_exec_parallel@vcs0-contexts.html
  * https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7458/shard-hsw7/igt@gem_exec_parallel@bcs0-fds.html

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.