Messages in this thread | | | Date | Wed, 1 Jun 2022 14:45:42 +0200 | Subject | Re: [Linaro-mm-sig] Re: [PATCH] dma-fence: allow dma fence to have their own lock | From | Christian König <> |
| |
Am 31.05.22 um 04:51 schrieb Sergey Senozhatsky: > On (22/05/30 16:55), Christian König wrote: >> Am 30.05.22 um 16:22 schrieb Sergey Senozhatsky: >>> [SNIP] >>> So the `lock` should have at least same lifespan as the DMA fence >>> that borrows it, which is impossible to guarantee in our case. >> Nope, that's not correct. The lock should have at least same lifespan as the >> context of the DMA fence. > How does one know when it's safe to release the context? DMA fence > objects are still transparently refcount-ed and "live their own lives", > how does one synchronize lifespans?
Well, you don't.
If you have a dynamic context structure you need to reference count that as well. In other words every time you create a fence in your context you need to increment the reference count and every time a fence is release you decrement it.
If you have a static context structure like most drivers have then you must make sure that all fences at least signal before you unload your driver. We still somewhat have a race when you try to unload a driver and the fence_ops structure suddenly disappear, but we currently live with that.
Apart from that you are right, fences can live forever and we need to deal with that.
Regards, Christian.
> _______________________________________________ > Linaro-mm-sig mailing list -- linaro-mm-sig@lists.linaro.org > To unsubscribe send an email to linaro-mm-sig-leave@lists.linaro.org
| |