drm/i915: Stop marking the unaccessible scratch page as UC
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 22 Aug 2016 07:44:29 +0000 (08:44 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 22 Aug 2016 10:01:47 +0000 (11:01 +0100)
Since by design, if not entirely by practice, nothing is allowed to
access the scratch page we use to background fill the VM, then we do not
need to ensure that it is coherent between the CPU and GPU.
set_pages_uc() does a stop_machine() after changing the PAT, and that
significantly impacts upon context creation throughput.

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

index b90fdcee992ac8066fed6b752e5a05d59997ac6a..b3cd9e21c8dae4e1c72b0d8d160d44621acd5602 100644 (file)
@@ -422,16 +422,12 @@ static struct i915_page_scratch *alloc_scratch_page(struct drm_device *dev)
                return ERR_PTR(ret);
        }
 
-       set_pages_uc(px_page(sp), 1);
-
        return sp;
 }
 
 static void free_scratch_page(struct drm_device *dev,
                              struct i915_page_scratch *sp)
 {
-       set_pages_wb(px_page(sp), 1);
-
        cleanup_px(dev, sp);
        kfree(sp);
 }