drm/i915: Make contexts non-snooped on non-LLC platforms
We don't do CPU access to GPU contexts so making the GPU access snoop the CPU caches seems silly, and potentially expensive. v2: Use !IS_VALLEYVIEW instead of HAS_LLC as this is really about what the PTEs can represent. Add a comment clarifying the situation. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
4e04632e88
commit
ad2ac08bf3
1 changed files with 9 additions and 1 deletions
|
@ -240,7 +240,15 @@ __create_hw_context(struct drm_device *dev,
|
||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (INTEL_INFO(dev)->gen >= 7) {
|
/*
|
||||||
|
* Try to make the context utilize L3 as well as LLC.
|
||||||
|
*
|
||||||
|
* On VLV we don't have L3 controls in the PTEs so we
|
||||||
|
* shouldn't touch the cache level, especially as that
|
||||||
|
* would make the object snooped which might have a
|
||||||
|
* negative performance impact.
|
||||||
|
*/
|
||||||
|
if (INTEL_INFO(dev)->gen >= 7 && !IS_VALLEYVIEW(dev)) {
|
||||||
ret = i915_gem_object_set_cache_level(ctx->obj,
|
ret = i915_gem_object_set_cache_level(ctx->obj,
|
||||||
I915_CACHE_L3_LLC);
|
I915_CACHE_L3_LLC);
|
||||||
/* Failure shouldn't ever happen this early */
|
/* Failure shouldn't ever happen this early */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue