mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-12-28 03:03:55 +00:00
Add a flag PIN_VALIDATE, to indicate we don't need to pin and only protected by the object lock. This removes the need to unpin, which is done by just releasing the lock. eb_reserve is slightly reworked for readability, but the same steps are still done: - First pass pins with NONBLOCK. - Second pass unbinds all objects first, then pins. - Third pass is only called when not all objects are softpinned, and unbinds all objects, then calls i915_gem_evict_vm(), then pins. Changes since v1: - Split out eb_reserve() into separate functions for readability. Changes since v2: - Make batch buffer mappable on platforms where only GGTT is available, to prevent moving the batch buffer during relocations. Changes since v3: - Preserve current behavior for batch buffer, instead be cautious when calling i915_gem_object_ggtt_pin_ww, and re-use the current batch vma if it's inside ggtt and map-and-fenceable. - Remove impossible condition check from eb_reserve. (Matt) Changes since v5: - Do not even temporarily pin, just call i915_gem_evict_vm() and mark all vma's as unpinned. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220114132320.109030-7-maarten.lankhorst@linux.intel.com |
||
|---|---|---|
| .. | ||
| selftests | ||
| i915_gem_busy.c | ||
| i915_gem_clflush.c | ||
| i915_gem_clflush.h | ||
| i915_gem_context_types.h | ||
| i915_gem_context.c | ||
| i915_gem_context.h | ||
| i915_gem_create.c | ||
| i915_gem_dmabuf.c | ||
| i915_gem_domain.c | ||
| i915_gem_execbuffer.c | ||
| i915_gem_internal.c | ||
| i915_gem_ioctls.h | ||
| i915_gem_lmem.c | ||
| i915_gem_lmem.h | ||
| i915_gem_mman.c | ||
| i915_gem_mman.h | ||
| i915_gem_object_types.h | ||
| i915_gem_object.c | ||
| i915_gem_object.h | ||
| i915_gem_pages.c | ||
| i915_gem_phys.c | ||
| i915_gem_pm.c | ||
| i915_gem_pm.h | ||
| i915_gem_region.c | ||
| i915_gem_region.h | ||
| i915_gem_shmem.c | ||
| i915_gem_shrinker.c | ||
| i915_gem_shrinker.h | ||
| i915_gem_stolen.c | ||
| i915_gem_stolen.h | ||
| i915_gem_throttle.c | ||
| i915_gem_tiling.c | ||
| i915_gem_ttm_move.c | ||
| i915_gem_ttm_move.h | ||
| i915_gem_ttm_pm.c | ||
| i915_gem_ttm_pm.h | ||
| i915_gem_ttm.c | ||
| i915_gem_ttm.h | ||
| i915_gem_userptr.c | ||
| i915_gem_wait.c | ||
| i915_gemfs.c | ||
| i915_gemfs.h | ||