1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/gpu/drm/i915/selftests
Thomas Hellström a259cc14ec drm/i915: Reduce the number of objects subject to memcpy recover
We really only need memcpy restore for objects that affect the
operability of the migrate context. That is, primarily the page-table
objects of the migrate VM.

Add an object flag, I915_BO_ALLOC_PM_EARLY for objects that need early
restores using memcpy and a way to assign LMEM page-table object flags
to be used by the vms.

Restore objects without this flag with the gpu blitter and only objects
carrying the flag using TTM memcpy.

Initially mark the migrate, gt, gtt and vgpu vms to use this flag, and
defer for a later audit which vms actually need it. Most importantly, user-
allocated vms with pinned page-table objects can be restored using the
blitter.

Performance-wise memcpy restore is probably as fast as gpu restore if not
faster, but using gpu restore will help tackling future restrictions in
mappable LMEM size.

v4:
- Don't mark the aliasing ppgtt page table flags for early resume, but
  rather the ggtt page table flags as intended. (Matthew Auld)
- The check for user buffer objects during early resume is pointless, since
  they are never marked I915_BO_ALLOC_PM_EARLY. (Matthew Auld)
v5:
- Mark GuC LMEM objects with I915_BO_ALLOC_PM_EARLY to have them restored
  before we fire up the migrate context.

Cc: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210922062527.865433-8-thomas.hellstrom@linux.intel.com
2021-09-24 08:19:16 +02:00
..
i915_active.c drm/i915: drop the __i915_active_call pointer packing 2021-05-05 11:36:23 +01:00
i915_buddy.c drm/i915/selftests: fix smatch warning in igt_check_blocks 2021-07-07 09:52:52 +01:00
i915_gem.c drm/i915/selftests: Rename pm_ prefixed functions names 2021-04-21 10:56:00 +03:00
i915_gem_evict.c drm/i915/gem: Use shrinkable status for unknown swizzle quirks 2021-01-20 21:01:33 +00:00
i915_gem_gtt.c drm/i915: Reduce the number of objects subject to memcpy recover 2021-09-24 08:19:16 +02:00
i915_live_selftests.h drm/i915/selftests: Add initial GuC selftest for scrubbing lost G2H 2021-09-13 11:30:38 -07:00
i915_mock_selftests.h drm/i915/gem: Don't allow changing the VM on running contexts (v4) 2021-07-08 19:49:02 +02:00
i915_perf.c Cross-subsystem Changes: 2021-06-10 13:45:11 +10:00
i915_perf_selftests.h drm/i915/gem: Zap the i915_gem_object_blt code 2021-06-17 14:23:15 +01:00
i915_random.c drm/i915/selftests: Extract random_offset() for use with a prng 2019-10-02 15:30:44 +01:00
i915_random.h drm/i915: Add missing include file <linux/math64.h> 2020-01-07 14:04:31 +00:00
i915_request.c drm/i915/selftest: Increase some timeouts in live_requests 2021-07-27 17:32:22 -07:00
i915_selftest.c drm/i915: Use a table for i915_init/exit (v2) 2021-07-22 12:05:17 +02:00
i915_sw_fence.c
i915_syncmap.c
i915_vma.c drm/i915: Drop __rcu from gem_context->vm 2021-09-06 11:11:32 +02:00
igt_atomic.c drm/i915/selftests: Move igt_atomic_section[] out of the header 2020-01-03 13:31:39 +00:00
igt_atomic.h drm/i915/selftests: Move igt_atomic_section[] out of the header 2020-01-03 13:31:39 +00:00
igt_flush_test.c drm/i915/selftest: Bump selftest timeouts for hangcheck 2021-07-27 17:32:26 -07:00
igt_flush_test.h drm/i915: Drop struct_mutex from around i915_retire_requests() 2019-10-04 15:39:17 +01:00
igt_live_test.c drm/i915/guc: Update intel_gt_wait_for_idle to work with GuC 2021-07-22 10:07:23 -07:00
igt_live_test.h drm/i915/selftests: Make headers self-contained 2020-01-03 13:33:36 +00:00
igt_mmap.c drm/i915: Use ttm mmap handling for ttm bo's. 2021-06-11 10:53:25 +02:00
igt_mmap.h drm/i915: Use ttm mmap handling for ttm bo's. 2021-06-11 10:53:25 +02:00
igt_reset.c drm/i915: Pass in intel_gt at some for_each_engine sites 2019-10-18 00:06:27 +01:00
igt_reset.h
igt_spinner.c Cross-subsystem Changes: 2021-06-10 13:45:11 +10:00
igt_spinner.h drm/i915: Add igt_spinner_pin() to allow for ww locking around spinner. 2021-03-24 17:27:21 +01:00
intel_memory_region.c drm/i915/selftests: fix smatch warning in mock_reserve 2021-07-07 09:52:53 +01:00
intel_scheduler_helpers.c drm/i915/selftests: Add initial GuC selftest for scrubbing lost G2H 2021-09-13 11:30:38 -07:00
intel_scheduler_helpers.h drm/i915/selftests: Add initial GuC selftest for scrubbing lost G2H 2021-09-13 11:30:38 -07:00
intel_uncore.c drm/i915/dg2: Add DG2-specific shadow register table 2021-09-21 17:16:27 -07:00
lib_sw_fence.c drm/i915: Propagate fence errors 2019-08-18 12:38:09 +01:00
lib_sw_fence.h
librapl.c drm/i915/selftests: Only query RAPL for integrated power measurements 2021-04-20 10:49:05 +01:00
librapl.h drm/i915/selftests: Only query RAPL for integrated power measurements 2021-04-20 10:49:05 +01:00
mock_drm.h drm/i915/selftests: make mock_drm.h self-contained 2019-12-23 12:38:43 +02:00
mock_gem_device.c drm/i915/guc: Update intel_gt_wait_for_idle to work with GuC 2021-07-22 10:07:23 -07:00
mock_gem_device.h drm/i915/selftest: Create mock_destroy_device 2020-09-21 10:36:24 +02:00
mock_gtt.c drm/i915/gt: Drop i915_address_space::file (v2) 2021-07-08 19:48:35 +02:00
mock_gtt.h drm/i915: make more headers self-contained 2019-11-08 10:16:13 +00:00
mock_region.c drm/i915: support forcing the page size with lmem 2021-06-30 13:24:29 +01:00
mock_region.h drm/i915: make more headers self-contained 2019-11-08 10:16:13 +00:00
mock_request.c drm/i915/selftests: Pass intel_context to mock_request 2019-08-08 13:44:31 +01:00
mock_request.h drm/i915/selftests: Pass intel_context to mock_request 2019-08-08 13:44:31 +01:00
mock_uncore.c drm/i915/selftests: Assign the intel_runtime_pm pointer for mock_uncore 2019-10-08 16:21:50 +01:00
mock_uncore.h drm/i915: make more headers self-contained 2019-11-08 10:16:13 +00:00
scatterlist.c