On Fri, Dec 06, 2013 at 02:11:22PM -0800, Ben Widawsky wrote: > From: Ben Widawsky <ben@xxxxxxxxxxxx> > > 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. So just process the active_list first, the requests and objects associated with the ring should be fairly independent. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx