OSDN Git Service

drm/i915: Drop wmb() inside pread_gtt
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 18 Jul 2019 14:54:04 +0000 (15:54 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 18 Jul 2019 19:04:50 +0000 (20:04 +0100)
Inside pread, we only ever read from the GTT so the serialising wmb()
instructions around the GGTT PTE updates are pointless.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190718145407.21352-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem.c

index a207b90..fed0bc4 100644 (file)
@@ -395,11 +395,9 @@ i915_gem_gtt_pread(struct drm_i915_gem_object *obj,
                unsigned page_length = PAGE_SIZE - page_offset;
                page_length = remain < page_length ? remain : page_length;
                if (node.allocated) {
-                       wmb();
                        ggtt->vm.insert_page(&ggtt->vm,
                                             i915_gem_object_get_dma_address(obj, offset >> PAGE_SHIFT),
                                             node.start, I915_CACHE_NONE, 0);
-                       wmb();
                } else {
                        page_base += offset & PAGE_MASK;
                }
@@ -419,7 +417,6 @@ i915_gem_gtt_pread(struct drm_i915_gem_object *obj,
 out_unpin:
        mutex_lock(&i915->drm.struct_mutex);
        if (node.allocated) {
-               wmb();
                ggtt->vm.clear_range(&ggtt->vm, node.start, node.size);
                remove_mappable_node(&node);
        } else {