On Fri, Jan 15, 2016 at 3:42 PM, Greg Hackmann ghackmann@google.com wrote:
On 01/15/2016 10:02 AM, Gustavo Padovan wrote:
Patches 27 and 28 are attempt to fix that. I assumed that if some code is calling fence_timeline_destroy() it wants to stop everything so I worked on a solution that stops any waiter and allows the timeline to be destroyed.
No one is using fence_timeline_destroy() in mainline now, so it is definately a behaviour we can discuss.
Gustavo
+Tom Cherry and Dmitry Torokhov recently discovered that this was broken by the refactoring of Android sync on top of dma-buf fences.
Tom and Dmitry, did you send the proposed fix upstream?
There was a similar issue that I had originally thought to be related to fence_timeline_destroy() but was actually related to sync_fence_free(). Dmitry sent the patch upstream at https://lkml.org/lkml/2015/12/14/953, but it does not look like it has received any feedback.
We saw real panics without this patch. I didn't see this patch or any similar changes in the destaging commits, and I would recommend it be looked at while destaging this driver.
Tom