On Fri, Oct 27, 2023 at 10:43:30AM -0600, Jeffrey Hugo wrote: > From: Pranjal Ramajor Asha Kanojiya <quic_pkanojiy@xxxxxxxxxxx> > > Add support to partially execute a slice which is resized to zero. > Executing a zero size slice in a BO should mean that there is no DMA > transfers involved but you should still configure doorbell and semaphores. > > For example consider a BO of size 18K and it is sliced into 3 6K slices > and user calls partial execute ioctl with resize as 10K. > slice 0 - size is 6k and offset is 0, so resize of 10K will not cut short > this slice hence we send the entire slice for execution. > slice 1 - size is 6k and offset is 6k, so resize of 10K will cut short this > slice and only the first 4k should be DMA along with configuring > doorbell and semaphores. > slice 2 - size is 6k and offset is 12k, so resize of 10k will cut short > this slice and no DMA transfer would be involved but we should > would configure doorbell and semaphores. > > This change begs to change the behavior of 0 resize. Currently, 0 resize > partial execute ioctl behaves exactly like execute ioctl i.e. no resize. > After this patch all the slice in BO should behave exactly like slice 2 in > above example. > > Refactor copy_partial_exec_reqs() to make it more readable and less > complex. > > Signed-off-by: Pranjal Ramajor Asha Kanojiya <quic_pkanojiy@xxxxxxxxxxx> > Reviewed-by: Jeffrey Hugo <quic_jhugo@xxxxxxxxxxx> > Signed-off-by: Jeffrey Hugo <quic_jhugo@xxxxxxxxxxx> Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@xxxxxxxxxxxxxxx>