Created attachment 102741 [details] dmesg ==System Environment== -------------------------- Regression: Yes Good commit on -next-queued: 84a2ab8ec76b4fa47f490a01c8186e4b4d757bfe Non-working platforms: BDW ==kernel== -------------------------- origin/drm-intel-nightly: 271bff129a641b5b35d99c9eb0ceb866ca42f692(fails) drm-intel-nightly: 2014y-07m-12d-12h-07m-51s integration manifest origin/drm-intel-next-queued: 491a3448622059b087d8c465b46b11f2953df7c1(fails) drm/i915: Enable PSR by default. origin/drm-intel-fixes: ceb9f032dc858c349d7d213454c5ba2c6ef9c5e5(works) Revert "drm/i915: Don't set the 8to6 dither flag when not scaling" ==Bug detailed description== igt/gem_reloc_vs_gpu/forked-faulting-reloc fails Output: [root@x-bdw01 tests]# ./gem_reloc_vs_gpu --run-subtest forked-faulting-reloc IGT-Version: 1.7-ge74dd22 (x86_64) (Linux: 3.16.0-rc4_drm-intel-nightly_271bff_20140714+ x86_64) Test assertion failure function do_test, file gem_reloc_vs_gpu.c:260: Failed assertion: test == 0xdeadbeef mismatch in buffer 7: 0x00000000 instead of 0xdeadbeef child 4 failed with exit status 99 Subtest forked-faulting-reloc: FAIL ==Reproduce steps== ---------------------------- 1. ./gem_reloc_vs_gpu --run-subtest forked-faulting-reloc
This bug is able to reproduce on BYT on latest -nightly(271bff129a641b5b35d99c9eb0ceb866ca42f692) Case list: igt/gem_reloc_vs_gpu/forked igt/gem_reloc_vs_gpu/forked-faulting-reloc igt/gem_reloc_vs_gpu/forked-faulting-reloc-thrash-inactive igt/gem_reloc_vs_gpu/forked-faulting-reloc-thrashing igt/gem_reloc_vs_gpu/forked-interruptible igt/gem_reloc_vs_gpu/forked-interruptible-faulting-reloc igt/gem_reloc_vs_gpu/forked-interruptible-faulting-reloc-thrash-inactive igt/gem_reloc_vs_gpu/forked-interruptible-faulting-reloc-thrashing igt/gem_reloc_vs_gpu/forked-interruptible-thrash-inactive igt/gem_reloc_vs_gpu/forked-interruptible-thrashing igt/gem_reloc_vs_gpu/forked-thrash-inactive igt/gem_reloc_vs_gpu/forked-thrashing Output: root@x-bytm02:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./gem_reloc_vs_gpu --run-subtest forked-faulting-reloc-thrash-inactive IGT-Version: 1.7-ge74dd22 (x86_64) (Linux: 3.16.0-rc4_drm-intel-nightly_271bff_20140714+ x86_64) Test assertion failure function do_test, file gem_reloc_vs_gpu.c:260: Failed assertion: test == 0xdeadbeef mismatch in buffer 1: 0x00000000 instead of 0xdeadbeef child 3 failed with exit status 99 Subtest forked-faulting-reloc-thrash-inactive: FAIL
Test failed on latest -next-queued(2b8ee5710915a244b807fbe3427299d007d19e89) on BSW [root@x-bsw01 tests]# ./gem_reloc_vs_gpu --run-subtest faulting-reloc IGT-Version: 1.7-g4d4f4b2 (x86_64) (Linux: 3.16.0-rc4_drm-intel-next-queued_2b8ee5_20140725+ x86_64) Test assertion failure function do_test, file gem_reloc_vs_gpu.c:260: Failed assertion: test == 0xdeadbeef mismatch in buffer 1: 0x00000000 instead of 0xdeadbeef Subtest faulting-reloc: FAIL Test assertion failure function gem_quiescent_gpu, file drmtest.c:149: Failed assertion: drmIoctl((fd), ((((1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | (((0x40 + 0x29)) << 0) | ((((sizeof(struct drm_i915_gem_execbuffer2)))) << ((0+8)+8)))), (&execbuf)) == 0 Last errno: 5, Input/output error gem_reloc_vs_gpu: igt_core.c:657: igt_fail: Assertion `!test_with_subtests || in_fixture' failed. Aborted (core dumped)
It also fails on BSW. [root@x-bsw01 tests]# ./gem_reloc_vs_gpu --run-subtest forked-faulting-reloc IGT-Version: 1.7-ge48c495 (x86_64) (Linux: 3.16.0-rc6_drm-intel-nightly_eb2af9_20140730+ x86_64) Test assertion failure function do_test, file gem_reloc_vs_gpu.c:260: Failed assertion: test == 0xdeadbeef mismatch in buffer 1: 0x00000000 instead of 0xdeadbeef Test assertion failure function do_test, file gem_reloc_vs_gpu.c:260: Failed assertion: test == 0xdeadbeef mismatch in buffer 1: 0x00000000 instead of 0xdeadbeef Test assertion failure function do_test, file gem_reloc_vs_gpu.c:260: Failed assertion: test == 0xdeadbeef mismatch in buffer 1: 0x00000000 instead of 0xdeadbeef child 3 failed with exit status 99 Subtest forked-faulting-reloc: FAIL
This bug still able to reproduce on latest -nightly(eb2af97968f0321622cf3aeb29991ad78cfdc1ca) on HSW [root@x-hsw24 tests]# ./gem_reloc_vs_gpu --run-subtest forked-interruptible-faulting-reloc-thrashing IGT-Version: 1.7-g2fae99b (x86_64) (Linux: 3.16.0-rc6_drm-intel-nightly_eb2af9_20140730+ x86_64) Test assertion failure function do_test, file gem_reloc_vs_gpu.c:260: Failed assertion: test == 0xdeadbeef mismatch in buffer 1: 0x00000000 instead of 0xdeadbeef child 8 failed with exit status 99 Subtest forked-interruptible-faulting-reloc-thrashing: FAIL
Test passed on latest -next-queued and latest -nightly on BDW. [root@x-bdw01 tests]# ./gem_reloc_vs_gpu --run-subtest forked-faulting-reloc IGT-Version: 1.7-gde1e877 (x86_64) (Linux: 3.16.0-rc4_drm-intel-next-queued_17c58f_20140804+ x86_64) Subtest forked-faulting-reloc: SUCCESS [root@x-bdw01 tests]# ./gem_reloc_vs_gpu --run-subtest forked-faulting-reloc IGT-Version: 1.7-g2fae99b (x86_64) (Linux: 3.16.0-rc6_drm-intel-nightly_ddbc28_20140804+ x86_64) Subtest forked-faulting-reloc: SUCCESS
Presuming it was fixed by commit e6a844687cf929ec053c7578d5ecc794a8a6c5cf Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Mon Aug 11 12:00:12 2014 +0200 drm/i915: Force CPU relocations if not GTT mapped
Verified on latest -nightly(da31e7c60be217316278a055dd3f91c33913270f) root@x-bdw05:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./gem_reloc_vs_gpu --run-subtest forked-faulting-reloc IGT-Version: 1.7-g5c7bcb1 (x86_64) (Linux: 3.16.0_drm-intel-nightly_da31e7_20140814+ x86_64) Subtest forked-faulting-reloc: SUCCESS
This bug fixed on HSW and BDW. but still able to reproduce on BYT and BSW. Output on BYT: root@x-bytm02:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# time ./gem_reloc_vs_gpu --run-subtest faulting-reloc IGT-Version: 1.7-g5c7bcb1 (x86_64) (Linux: 3.16.0_drm-intel-nightly_da31e7_20140814+ x86_64) Warning on condition flags != 0 in fucntion check_stop_rings, file drmtest.c:112 i915_ring_stop flags on exit 0x80000002, can't quiescent gpu cleanly Test assertion failure function do_test, file gem_reloc_vs_gpu.c:260: Failed assertion: test == 0xdeadbeef mismatch in buffer 1: 0x00000000 instead of 0xdeadbeef Subtest faulting-reloc: FAIL Output on BSW [root@x-bsw01 tests]# time ./gem_reloc_vs_gpu --run-subtest faulting-reloc IGT-Version: 1.7-g5c7bcb1 (x86_64) (Linux: 3.16.0_drm-intel-nightly_da31e7_20140814+ x86_64) Test assertion failure function do_test, file gem_reloc_vs_gpu.c:260: Failed assertion: test == 0xdeadbeef mismatch in buffer 1: 0x00000000 instead of 0xdeadbeef Subtest faulting-reloc: FAIL Test assertion failure function gem_quiescent_gpu, file drmtest.c:178: Failed assertion: drmIoctl((fd), ((((1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | (((0x40 + 0x29)) << 0) | ((((sizeof(struct drm_i915_gem_execbuffer2)))) << ((0+8)+8)))), (&execbuf)) == 0 Last errno: 5, Input/output error gem_reloc_vs_gpu: igt_core.c:766: igt_fail: Assertion `!test_with_subtests || in_fixture' failed. gem_reloc_vs_gpu: igt_core.c:967: igt_stop_helper: Assertion `(((signed char) ((((__extension__ (((union { __typeof(status) __in; int __i; }) { .__in = (status) }).__i))) & 0x7f) + 1) >> 1) > 0) && (((__extension__ (((union { __typeof(status) __in; int __i; }) { .__in = (status) }).__i))) & 0x7f) == (proc->use_SIGKILL ? 9 : 15)' failed. Test assertion failure function gem_quiescent_gpu, file drmtest.c:164: Failed assertion: drmIoctl((fd), ((((1U) << (((0+8)+8)+14)) | ((('d')) << (0+8)) | (((0x40 + 0x29)) << 0) | ((((sizeof(struct drm_i915_gem_execbuffer2)))) << ((0+8)+8)))), (&execbuf)) == 0 Last errno: 5, Input/output error gem_reloc_vs_gpu: igt_core.c:766: igt_fail: Assertion `!test_with_subtests || in_fixture' failed. Aborted (core dumped)
Test failed on latest -nightly(99f444f7f8308ca93d56a3802a3e1a8abcad7f57) on BDW root@x-bdw05:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./gem_reloc_vs_gpu --run-subtest forked-interruptible-faulting-reloc IGT-Version: 1.8-g107151c (x86_64) (Linux: 3.17.0-rc4_drm-intel-nightly_99f444_20140910+ x86_64) Test assertion failure function do_test, file gem_reloc_vs_gpu.c:258: Failed assertion: test == 0xdeadbeef mismatch in buffer 5: 0x00000000 instead of 0xdeadbeef child 9 failed with exit status 99 Subtest forked-interruptible-faulting-reloc: FAIL (4.190s)
Test fails on latest -nightly(43df30da20447e2856b2761215ff274886a9f931) on HSW [root@x-hsw24 tests]# ./gem_reloc_vs_gpu --run-subtest forked-faulting-reloc IGT-Version: 1.8-g137877f (x86_64) (Linux: 3.17.0-rc4_drm-intel-nightly_43df30_20140915+ x86_64) Test assertion failure function do_test, file gem_reloc_vs_gpu.c:258: Failed assertion: test == 0xdeadbeef mismatch in buffer 14: 0x00000000 instead of 0xdeadbeef child 10 failed with exit status 99 Subtest forked-faulting-reloc: FAIL (6.096s)
commit 4b81e9ca7df84d3c8775ebf0332f7444cafe8e77 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Sep 19 16:40:00 2014 +0100 igt/gem_reloc_vs_gpu: Fix reloc.presumed_offset value Since the last patched value does not match the presumed relocation value we submit to the kernel, it occasionally makes mistakes. Also note that the libdrm interface makes the same presumptive mistake, and would easily be broken by a threaded environment. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77793 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Verified on latest igt(4b81e9ca7df84d3c8775ebf0332f7444cafe8e77) [root@x-hsw27 tests]# ./gem_reloc_vs_gpu --run-subtest forked-interruptible-faulting-reloc-thrashing IGT-Version: 1.8-g4b81e9c (x86_64) (Linux: 3.17.0-rc5_drm-intel-nightly_c5660b_20140922_debug+ x86_64) Subtest forked-interruptible-faulting-reloc-thrashing: SUCCESS (6.872s) [root@x-hsw27 tests]# echo $? 0 [root@x-hsw27 tests]# dmesg -r|egrep "<[1-4]>"|grep drm
Closing (>2 years) old Verified+Fixed.
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.