• Ohad Sharabi's avatar
    habanalabs: prevent wait if CS in multi-CS list completed · e2558f0f
    Ohad Sharabi authored
    By the original design we assumed that if we "miss" multi CS completion
    it is of no severe consequence as we'll just call wait_for_multi_cs
    again.
    
    Sequence of events for such scenario:
    1. user submit CS with sequence N
    2. user calls wait for multi-CS with only CS #N in the list
    3. the multi CS call starts with poll of the CSs but find that none
       completed (while CS #N did not completed yet)
    4. now, multi CS #N complete but multi CS CTX was not yet created for
       the above multi-CS. so, attempt to complete multi-CS fails (as no
       multi CS CTX exist)
    5. wait_for_multi_cs call now does init_wait_multi_cs_completion (and
       for this create the multi-CS CTX)
    6. wait_for_multi_cs wits on completion but will not get one as CS #N
       already completed
    
    To fix the issue we initialize the multi-CS CTX prior polling the
    fences.
    Signed-off-by: default avatarOhad Sharabi <osharabi@habana.ai>
    Reviewed-by: default avatarOded Gabbay <ogabbay@kernel.org>
    Signed-off-by: default avatarOded Gabbay <ogabbay@kernel.org>
    e2558f0f
habanalabs.h 116 KB