diff mbox

drm/i915: Reserve shadow batch VMA analogue to others

Message ID 1420651959-13901-1-git-send-email-tvrtko.ursulin@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Tvrtko Ursulin Jan. 7, 2015, 5:32 p.m. UTC
From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

If not pinned VMA can become an eviction target just before it needs to be
executed which breaks the internal object lifetime rules.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87399
---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Shuang He Jan. 8, 2015, 1:26 a.m. UTC | #1
Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                 -23              363/364              340/364
ILK                 -12              364/366              352/366
SNB              +4-55              443/450              392/450
IVB                 -36              496/498              460/498
BYT                                  288/289              288/289
HSW              +9-36              542/564              515/564
BDW                 -25              415/417              390/417
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
 PNV  igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-bcs-overwrite-source      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-rcs-early-read      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-rcs-overwrite-source      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-bcs-early-read      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-rcs-early-read      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 PNV  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible      NSPT(3, M23M25)PASS(1, M25)      NSPT(1, M23)
 ILK  igt_gem_concurrent_blit_gpu-bcs-early-read      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpu-bcs-overwrite-source      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpuX-bcs-early-read      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 ILK  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible      NSPT(3, M26M37)PASS(1, M37)      NSPT(1, M37)
 SNB  igt_gem_concurrent_blit_gpu-bcs-early-read      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-bcs-early-read-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-bcs-overwrite-source      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-bcs-overwrite-source-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-rcs-early-read      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-rcs-overwrite-source      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-rcs-overwrite-source-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-bcs-early-read      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-bcs-early-read-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-rcs-early-read      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-rcs-early-read-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-forked      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible      NSPT(3, M22M35)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_kms_cursor_crc_cursor-size-change      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_kms_flip_dpms-vs-vblank-race      DMESG_WARN(3, M35M22)PASS(3, M35M22)      PASS(1, M35)
 SNB  igt_kms_flip_dpms-vs-vblank-race-interruptible      DMESG_WARN(2, M35M22)PASS(4, M35M22)      PASS(1, M35)
 SNB  igt_kms_flip_modeset-vs-vblank-race      DMESG_WARN(4, M35M22)PASS(3, M35M22)      PASS(1, M35)
 SNB  igt_kms_mmio_vs_cs_flip_setcrtc_vs_cs_flip      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_kms_mmio_vs_cs_flip_setplane_vs_cs_flip      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_kms_plane_plane-position-hole-pipe-B-plane-1      DMESG_WARN(1, M35)PASS(7, M35M22)      PASS(1, M35)
 SNB  igt_kms_rotation_crc_primary-rotation      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_kms_rotation_crc_sprite-rotation      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_cursor      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_cursor-dpms      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_dpms-mode-unset-non-lpsp      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_dpms-non-lpsp      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_drm-resources-equal      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_fences      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_fences-dpms      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_gem-execbuf      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_gem-mmap-cpu      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_gem-mmap-gtt      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_gem-pread      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_i2c      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_modeset-non-lpsp      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_modeset-non-lpsp-stress-no-wait      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_pci-d3-state      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 SNB  igt_pm_rpm_rte      NSPT(3, M35M22)PASS(1, M35)      NSPT(1, M35)
 IVB  igt_gem_concurrent_blit_gpu-bcs-early-read      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-bcs-early-read-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-bcs-overwrite-source      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-bcs-overwrite-source-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-rcs-early-read      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-rcs-early-read-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-rcs-overwrite-source      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-rcs-overwrite-source-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-bcs-early-read      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-bcs-early-read-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-rcs-early-read      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-rcs-early-read-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-forked      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 IVB  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible      NSPT(3, M21M34)PASS(1, M34)      NSPT(1, M21)
 HSW  igt_gem_concurrent_blit_gpu-bcs-early-read      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-bcs-early-read-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-bcs-overwrite-source      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-bcs-overwrite-source-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-rcs-early-read      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-rcs-early-read-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-rcs-overwrite-source      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-rcs-overwrite-source-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-bcs-early-read      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-bcs-early-read-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-rcs-early-read      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-rcs-early-read-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-forked      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible      NSPT(3, M19M20)PASS(1, M40)      NSPT(1, M20)
 HSW  igt_kms_flip_dpms-vs-vblank-race      DMESG_WARN(1, M40)PASS(3, M19M20)      PASS(1, M20)
 HSW  igt_kms_flip_dpms-vs-vblank-race-interruptible      DMESG_WARN(2, M40)PASS(3, M19M20)      PASS(1, M20)
 HSW  igt_kms_flip_flip-vs-dpms-off-vs-modeset      DMESG_WARN(1, M40)PASS(3, M19M20)      PASS(1, M20)
 HSW  igt_kms_flip_flip-vs-dpms-off-vs-modeset-interruptible      DMESG_WARN(2, M40M19)PASS(3, M19M20)      PASS(1, M20)
 HSW  igt_kms_flip_modeset-vs-vblank-race      DMESG_WARN(1, M40)PASS(3, M19M20)      PASS(1, M20)
 HSW  igt_kms_flip_modeset-vs-vblank-race-interruptible      DMESG_WARN(1, M40)PASS(3, M19M20)      PASS(1, M20)
 HSW  igt_kms_flip_single-buffer-flip-vs-dpms-off-vs-modeset-interruptible      DMESG_WARN(2, M40)PASS(4, M19M20)      PASS(1, M20)
 HSW  igt_kms_plane_plane-panning-bottom-right-pipe-C-plane-1      TIMEOUT(3, M40)PASS(5, M19M40M20)      PASS(1, M20)
 HSW  igt_pm_rpm_modeset-non-lpsp-stress-no-wait      NSPT(2, M19)DMESG_WARN(1, M40)PASS(5, M40M20)      PASS(1, M20)
 BDW  igt_gem_concurrent_blit_gpu-bcs-early-read      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-bcs-early-read-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-bcs-gpu-read-after-write-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-bcs-overwrite-source      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-bcs-overwrite-source-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-rcs-early-read      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-rcs-early-read-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-rcs-gpu-read-after-write-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-rcs-overwrite-source      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpu-rcs-overwrite-source-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-bcs-early-read      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-bcs-early-read-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-bcs-gpu-read-after-write-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-bcs-overwrite-source-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-rcs-early-read      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-rcs-early-read-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-rcs-gpu-read-after-write-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
 BDW  igt_gem_concurrent_blit_gpuX-rcs-overwrite-source-interruptible      NSPT(3, M28M30)PASS(1, M30)      NSPT(1, M28)
*BDW  igt_gem_multi_bsd_sync_loop      PASS(4, M30M28)      DMESG_WARN(1, M28)
Note: You need to pay more attention to line start with '*'
Daniel Vetter Jan. 8, 2015, 9:05 a.m. UTC | #2
On Wed, Jan 07, 2015 at 05:32:39PM +0000, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> 
> If not pinned VMA can become an eviction target just before it needs to be
> executed which breaks the internal object lifetime rules.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87399

Queued for -next, thanks for the patch.
-Daniel

> ---
>  drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> index 1d6e092..e3ef177 100644
> --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
> @@ -1081,6 +1081,7 @@ i915_gem_execbuffer_parse(struct intel_engine_cs *ring,
>  {
>  	struct drm_i915_private *dev_priv = to_i915(batch_obj->base.dev);
>  	struct drm_i915_gem_object *shadow_batch_obj;
> +	bool need_reloc = false;
>  	int ret;
>  
>  	shadow_batch_obj = i915_gem_batch_pool_get(&dev_priv->mm.batch_pool,
> @@ -1106,6 +1107,7 @@ i915_gem_execbuffer_parse(struct intel_engine_cs *ring,
>  		vma->exec_entry = shadow_exec_entry;
>  		vma->exec_entry->flags = __EXEC_OBJECT_PURGEABLE;
>  		drm_gem_object_reference(&shadow_batch_obj->base);
> +		i915_gem_execbuffer_reserve_vma(vma, ring, &need_reloc);
>  		list_add_tail(&vma->exec_list, &eb->vmas);
>  
>  		shadow_batch_obj->base.pending_read_domains =
> -- 
> 2.2.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 1d6e092..e3ef177 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -1081,6 +1081,7 @@  i915_gem_execbuffer_parse(struct intel_engine_cs *ring,
 {
 	struct drm_i915_private *dev_priv = to_i915(batch_obj->base.dev);
 	struct drm_i915_gem_object *shadow_batch_obj;
+	bool need_reloc = false;
 	int ret;
 
 	shadow_batch_obj = i915_gem_batch_pool_get(&dev_priv->mm.batch_pool,
@@ -1106,6 +1107,7 @@  i915_gem_execbuffer_parse(struct intel_engine_cs *ring,
 		vma->exec_entry = shadow_exec_entry;
 		vma->exec_entry->flags = __EXEC_OBJECT_PURGEABLE;
 		drm_gem_object_reference(&shadow_batch_obj->base);
+		i915_gem_execbuffer_reserve_vma(vma, ring, &need_reloc);
 		list_add_tail(&vma->exec_list, &eb->vmas);
 
 		shadow_batch_obj->base.pending_read_domains =