On 23/06/2015 11:24, Chris Wilson wrote:
On Fri, May 29, 2015 at 05:44:07PM +0100, john.c.harri...@intel.com wrote:
-int intel_ring_begin(struct intel_engine_cs *ring,
+int intel_ring_begin(struct drm_i915_gem_request *req,
                     int num_dwords)
  {
-       struct drm_i915_gem_request *req;
-       struct drm_i915_private *dev_priv = ring->dev->dev_private;
+       struct intel_engine_cs *ring;
+       struct drm_i915_private *dev_priv;
        int ret;
+ WARN_ON(req == NULL);
+       ring = req->ring;
What was the point?
-Chris


The point is to remove the OLR. The significant change within intel_ring_begin is the next few lines:

-       /* Preallocate the olr before touching the ring */
-       ret = i915_gem_request_alloc(ring, ring->default_context, &req);


That is the part that causes problems by randomly creating a brand new request that no-one knows about and squirreling it away in the OLR to scoop up random bits of work. This is the whole point of the entire patch series - to ensure that all ring work is assigned to a known request by whoever instigated that work.

John.

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to