Re: [PATCH 18/29] drm/i915: Use new bind/unbind in eviction code

Daniel Vetter
2013-08-06T22:59:30Z

On Wed, Aug 7, 2013 at 12:57 AM, Ben Widawsky <ben@bwidawsk.net> wrote:
>> > We need evict_everything for #1. For #2, we call evict_something already
>> > for the vm when we go through the out of space path. If that failed,
>> > evicting everything for a specific VM is just the same operation. But
>> > maybe I've glossed over something in the details. Please correct if I'm
>> > wrong. Is there a case where evict something might fail with ENOSPC, and
>> > evict everything in a VM would help?
>>
>> Yes, when we've terminally fragmented the gtt we kick out everything and
>> start over. That's the 3rd usecase.
>
> I am not seeing it. To me evict_something is what you want, and the fix
> for wherever the 3rd usecase is (please point it out, I'm dense) is it
> should call evict_something, not evict_everything.

See the call to evict_everything in
i915_gem_execbuffer.c:i915_gem_execbuffer_reserve

Cheers, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch