On Tue, May 22, 2018 at 3:37 AM, Eric Anholt <eric@xxxxxxxxxx> wrote: > Qiang Yu <yuq825@xxxxxxxxx> writes: > >> This reverts commit 45c3d213a400c952ab7119f394c5293bb6877e6b. >> >> lima driver need preclose to wait all task in the context >> created within closing file to finish before free all the >> buffer object. Otherwise pending tesk may fail and get >> noisy MMU fault message. >> >> Move this wait to each buffer object free function can >> achieve the same result but some buffer object is shared >> with other file context, but we only want to wait the >> closing file context's tasks. So the implementation is >> not that straight forword compared to the preclose one. > > You should just separate your MMU structures from drm_file, and have > drm_file and the jobs using it keep a reference on them. This is what > I've done in V3D as well. It's not the VM/MMU struct that causes this problem, it's each buffer object that gets freed before task is done (postclose is after buffer free). If you mean I should keep reference of all buffers for tasks, that's not as simple as just waiting task done before free buffers. Regards, Qiang _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel