drm/i915: Try a minimal attempt to insert the whole object for relocations
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 9 Oct 2017 08:43:59 +0000 (09:43 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 9 Oct 2017 16:07:29 +0000 (17:07 +0100)
As we have a lightweight fallback to insert a single page into the
aperture, try to avoid any heavier evictions when attempting to insert
the entire object.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/20171009084401.29090-5-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/i915_gem_execbuffer.c

index 1df54e5fbb6eddf12e85f84c2918c0106294a38a..3d7190764f1012ed97265c34d79c14554d8c4252 100644 (file)
@@ -974,7 +974,9 @@ static void *reloc_iomap(struct drm_i915_gem_object *obj,
                        return ERR_PTR(err);
 
                vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0,
-                                              PIN_MAPPABLE | PIN_NONBLOCK);
+                                              PIN_MAPPABLE |
+                                              PIN_NONBLOCK |
+                                              PIN_NONFAULT);
                if (IS_ERR(vma)) {
                        memset(&cache->node, 0, sizeof(cache->node));
                        err = drm_mm_insert_node_in_range