Re: [PATCH] drm/i915: Remove assertion of active_rings must be non-empty if active_requests

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Chris Wilson (2018-05-04 11:11:47)
> "An outstanding request must still be on an active ring somewhere" is
> only true if we haven't just been interrupted by the shrinker in the
> middle of allocating the request itself. (At the start of
> i915_request_alloc() we pin the context and prepare the GT for activity,
> marking it as active, and then try to allocate the request. If this
> allocation invokes the shrinker, we try to reclaim some space by calling
> i915_retire_requests() which may then be confused by the pre-reservation
> of active_requests.)

Note that the oops here is actually of any allocation after
i915_request_alloc and before i915_request_add. To close that coarse
window, we could move the list_add(rq, ring->request_list) to
i915_request_alloc, but we still have the issue of the allocations inside
i915_request_alloc itself.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux