Am 25.06.20 um 15:59 schrieb Daniel Vetter:
On Thu, Jun 25, 2020 at 3:23 PM Lionel Landwerlin lionel.g.landwerlin@intel.com wrote:
On 25/06/2020 16:18, Chris Wilson wrote:
Quoting Lionel Landwerlin (2020-06-25 13:34:43)
There was probably a misunderstand on how the dma-fence-chain is supposed to work or what dma_fence_chain_find_seqno() is supposed to return.
dma_fence_chain_find_seqno() is here to give us the fence to wait upon for a particular point in the timeline. The timeline progresses only when all the points prior to a given number have completed.
Hmm, the question was what point is it supposed to wait for.
For the simple chain of [1, 3], does 1 being signaled imply that all points up to 3 are signaled, or does 3 not being signaled imply that all points after 1 are not. If that's mentioned already somewhere, my bad. If not, could you put the answer somewhere. -Chris
In [1, 3], if 1 is signaled, the timeline value is 1. And find_seqno(2) should return NULL.
In the out_of_order selftest the chain was [1, 2, 3], 2 was signaled and the test was expecting no fence to be returned by find_seqno(2).
But we still have to wait on 1 to complete before find_seqno(2) can return NULL (as in you don't have to wait on anything).
Hope that answer the question.
I asked Christian to document why timeline works like this, but I can't find it in the kerneldoc right now. If it's missing I think we should fix that and add the explanation, iirc it was around gpu reset creating too much havoc otherwise.
I do remember that I wrote a patch to improve the kerneldoc for timeline semaphores, but then somebody else came along with an even better description.
Unfortunately it looks like neither was ever merged.
Need to dig through my mails, Christian.
-Daniel
-Lionel
Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.free...