Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
VITIS-11806 Support runlist submission as chained command objects (#8194
) * VITIS-11806 Support runlist submission as chained command objects Add new ERT_CMD_CHAIN opcode for chained command submssion of a runlist. A runlist is broken into multiple chained commands if necessary. This PR reworks #8171 and replaces disjoint set submission of individual command buffers with submission of a single ert_packet command buffer that chains individual commands. The chained command is represented as an `ert_packet` where the payload is interpreted as `ert_cmd_chain_data` per ert.h. The pay holds an array of buffer_handles that are to be submitted atomically for execution. This chained command submission is somewhat easier to manage and is a step towards supporting command fusing where multiple run objects are stiched together into a single command without managing individual run objects. This PR also parameterizes bo_cache with the size of bos needed. This is done because runlist will not currently need a 4K buffer for the chained ert packet. This may change in future when runlist fuses the individual commands. It is understood that 4K may in fact be the minimum underlying allocation size, but that is unbeknowst to the code that uses the bo cache. Signed-off-by: Soren Soe <[email protected]> * Move chained command creation to runlist_impl::add(run) This will keep some work out the time critical section. Also populate chain_data payload from new run_bo property `kmhdl` which is controlled by shim to be the kernel mode handle or address of run_bo depending on how command chaining is implemented by shim. Signed-off-by: Soren Soe <[email protected]> * Redo error handling if bind_at throws There is one caveat here and that is the chain_data command_count is one short of what is added to the array. This is to avoid state change if bind_at throws, but is of course no good if bind_at expects argument `idx` to match up with `command_count`. Signed-off-by: Soren Soe <[email protected]> --------- Signed-off-by: Soren Soe <[email protected]>
- Loading branch information