summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBen Widawsky <ben@bwidawsk.net>2013-12-06 14:11:22 -0800
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-12-18 15:52:51 +0100
commite20780439b26ba95aeb29d3e27cd8cc32bc82a4c (patch)
tree3aec99c77a82a0588f586fd6949994e87148944a /include
parent41bde5535a7d48876095926bb55b1aed5ccd6b2c (diff)
drm/i915: Defer request freeing
With context destruction, we always want to be able to tear down the underlying address space. This is invoked on the last unreference to the context which could happen before we've moved all objects to the inactive list. To enable a clean tear down the address space, make sure to process the request free lastly. Without this change, we cannot guarantee to we don't still have active objects in the VM. As an example of a failing case: CTX-A is created, count=1 CTX-A is used during execbuf does a context switch count = 2 and add_request count = 3 CTX B runs, switches, CTX-A count = 2 CTX-A is destroyed, count = 1 retire requests is called free_request from CTX-A, count = 0 <--- free context with active object As mentioned above, by doing the free request after processing the active list, we can avoid this case. Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions