Bug 107862 - [CI][DRMTIP] igt@(prime_vgem/coherency) - fail - Failed assertion: gtt[1024*i] == ~i
Summary: [CI][DRMTIP] igt@(prime_vgem/coherency) - fail - Failed assertion: gtt[1024*i...
Status: NEW
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: Other All
: medium normal
Assignee: mwa
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: ReadyForDev
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-07 17:50 UTC by Martin Peres
Modified: 2019-03-19 07:45 UTC (History)
1 user (show)

See Also:
i915 platform: G33, GM45, I915G, PNV
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 2018-09-07 17:50:52 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_101/fi-blb-e6850/igt@prime_vgem@coherency-gtt.html

https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_101/fi-pnv-d510/igt@prime_vgem@coherency-gtt.html

https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_101/fi-elk-e7500/igt@prime_vgem@coherency-gtt.html

https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_101/fi-bwr-2160/igt@prime_vgem@coherency-gtt.html

(prime_vgem:1363) CRITICAL: Test assertion failure function test_gtt_interleaved, file ../tests/prime_vgem.c:314:
(prime_vgem:1363) CRITICAL: Failed assertion: gtt[1024*i] == ~i
(prime_vgem:1363) CRITICAL: error: 0 != -1
Subtest coherency-gtt failed.

Used to be tracked in https://bugs.freedesktop.org/show_bug.cgi?id=100587.
Comment 1 Chris Wilson 2018-09-07 17:57:01 UTC
The weird with these is that it looks like buffering on the read; it's not the write via the GTT being incoherent with the read via WC, in these cases it's the write via WC not being immediately visible via GTT. That upsets all my understanding of PCI ordering rules and mental models for how the GTT works.
Comment 2 Chris Wilson 2018-09-07 17:59:59 UTC
It's only prime_vgem, right? That's the one that tries to interleave read/writes to and from GTT. Ah, probably because gem_mmap_gtt/coherency only checked the one direction (a fault of writing the test for the known bug instead of thinking about possible variants).
Comment 3 Martin Peres 2018-09-07 18:05:08 UTC
(In reply to Chris Wilson from comment #2)
> It's only prime_vgem, right? That's the one that tries to interleave
> read/writes to and from GTT. Ah, probably because gem_mmap_gtt/coherency
> only checked the one direction (a fault of writing the test for the known
> bug instead of thinking about possible variants).

Yes, only igt@prime_vgem@coherency-gtt is failing now :)
Comment 5 Francesco Balestrieri 2019-03-19 07:43:47 UTC
Latest occurrence from yesterday:

https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_246/fi-elk-e7500/igt@prime_vgem@coherency-gtt.html'

Starting subtest: coherency-gtt
(prime_vgem:1136) CRITICAL: Test assertion failure function test_gtt_interleaved, file ../tests/prime_vgem.c:314:
(prime_vgem:1136) CRITICAL: Failed assertion: gtt[1024*i] == ~i
(prime_vgem:1136) CRITICAL: error: 0 != -1
Subtest coherency-gtt failed.
**** DEBUG ****
(prime_vgem:1136) DEBUG: Test requirement passed: is_coherent(i915)
(prime_vgem:1136) CRITICAL: Test assertion failure function test_gtt_interleaved, file ../tests/prime_vgem.c:314:
(prime_vgem:1136) CRITICAL: Failed assertion: gtt[1024*i] == ~i
(prime_vgem:1136) CRITICAL: error: 0 != -1
(prime_vgem:1136) igt_core-INFO: Stack trace:
(prime_vgem:1136) igt_core-INFO:   #0 ../lib/igt_core.c:1474 __igt_fail_assert()
(prime_vgem:1136) igt_core-INFO:   #1 ../tests/prime_vgem.c:307 test_gtt_interleaved()
(prime_vgem:1136) igt_core-INFO:   #2 ../tests/prime_vgem.c:833 __real_main805()
(prime_vgem:1136) igt_core-INFO:   #3 ../tests/prime_vgem.c:805 main()
(prime_vgem:1136) igt_core-INFO:   #4 ../csu/libc-start.c:344 __libc_start_main()
(prime_vgem:1136) igt_core-INFO:   #5 [_start+0x2a]
****  END  ****
Subtest coherency-gtt: FAIL (0.796s)
Comment 6 Francesco Balestrieri 2019-03-19 07:45:36 UTC
Assigning to Matt for investigation. Do the logs reveal anything?


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.