drm/i915: Skip clearing the GGTT on full-ppgtt systems
authorChris Wilson <chris@chris-wilson.co.uk>
Sat, 14 May 2016 06:26:35 +0000 (07:26 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Sat, 14 May 2016 07:51:39 +0000 (08:51 +0100)
commitf7770bfd9fd2ef13a5b70de1ffbc16019a929b48
treec1a32154a7fa478c9838ab015a3d2348afa90a68
parent975f7ff42edfbad53d65ad63a4f3e7ada8c7538f
drm/i915: Skip clearing the GGTT on full-ppgtt systems

Under full-ppgtt, access to the global GTT is carefully regulated
through hardware functions (i.e. userspace cannot read and write to
arbitrary locations in the GGTT via the GPU). With this restriction in
place, we can forgo clearing stale entries from the GGTT as they will
not be accessed.

For aliasing-ppgtt, we could almost do the same except that we do allow
userspace access to the global-GTT via execbuf in order to workraound
some quirks of certain instructions. (This execbuf path is filtered out
with EINVAL on full-ppgtt.)

The most dramatic effect this will have will be during resume, as with
full-ppgtt the GGTT is only used sparingly.

References: https://bugs.freedesktop.org/show_bug.cgi?id=94722
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: David Weinehall <david.weinehall@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Tested-by: David Weinehall <david.weinehall@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1463207195-22076-4-git-send-email-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem_gtt.c