• Ohad Sharabi's avatar
    habanalabs: add wait-for-multi-CS uAPI · 215f0c17
    Ohad Sharabi authored
    When user sends multiple CSs, waiting for each CS is not efficient
    as it involves many user-kernel context switches.
    
    In order to address this issue we add support to "wait on multiple CSs"
    using a new uAPI which can wait on maximum of 32 CSs. The new uAPI is
    defined using a new flag - WAIT_FOR_MULTI_CS - in the wait_for_cs IOCTL.
    
    The input parameters for this uAPI will be:
    @seq: user pointer to an array of up to 32 CS's sequence numbers.
    @seq_array_len: length of sequence array.
    @timeout_us: timeout for waiting for any CS.
    
    The output paramateres for this API will be:
    @status: multi CS ioctl completion status (dedicated status was added as
             well).
    @flags: bitmap of output flags of the CS.
    @cs_completion_map: bitmap for multi CS, if CS sequence that was placed
                        in index N in input seq array has completed- the N-th
    		    bit in cs_completion_map will be 1, otherwise it will
    		    be 0.
    @timestamp_nsec: timestamp of the first completed CS
    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>
    215f0c17
goya.c 155 KB