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