On 13.08.25 14:43, Janusz Krzysztofik wrote: > Hi Christian, > > On Tuesday, 8 July 2025 12:09:58 CEST Christian König wrote: >> On 08.07.25 10:56, Janusz Krzysztofik wrote: >>>> >>>> There is no reason to test enabling signaling each of the element in a >>>> loop. So there should be something like 4096 calls to the >>>> dma_fence_chain_cb function each jumping to the next unsignaled fence and >>>> re-installing the callback. >>> >>> So how building a chain should look like in real use cases? When a user >>> builds a chained link of her fence with another fence then may she enable >>> signaling on the new chain link? If that other fence occurs a chain link >>> then >>> who should take care of disabling signaling on it so signaling is enabled >>> only >>> on the last link of the chain, not leading to a situation similar to what >>> we >>> have now in the test case? IOW, what's a correct use pattern of >>> dma_fence_chain? I can't find that documented anywhere, neither in inline >>> docs nor in commit descriptions. >> >> The dma_fence_chain container is basically a single linked list which allows >> to "chain" together multiple dma_fence objects. >> >> The use cases is to keep only a single fence even when multiple asynchronous >> operations have been started. >> >> So you usually keep only the most recently created dma_fence_chain and >> eventually ask that one to signal when you need to wait for all fences >> inside the container. >> >> The tricky part is that since the chain can get very long the implementation >> can't use recursion or otherwise we would potentially overflow the kernel >> stack. And that needs to be tested and made sure we don't accidentally break >> the implementation somehow. >> >> Keeping all elements of a dma_fence_chain in an array and asking all of them >> to signal individually makes no sense, for this use case we have the >> dma_fence_array in the first place. > > I'm going to submit a patch that drops enabling of signaling on each link of > the tested chain, as you suggested. Don't you mind if I add your Suggested- > by:?
Sure. Thanks for looking into that, Christian. > > Thanks, > Janusz > >> >> Regards, >> Christian. >> >>> >>> Thanks, >>> Janusz >> > > > >