On Wed, Sep 08, 2021 at 11:47:59PM +0530, Jerin Jacob wrote:
>    On Tue, 7 Sep 2021, 10:25 pm Bruce Richardson,
>    <[1]bruce.richard...@intel.com> wrote:
> 
>      From: Kevin Laatz <[2]kevin.la...@intel.com>
>      Add a burst capacity check API to the dmadev library. This API is
>      useful to
>      applications which need to how many descriptors can be enqueued in
>      the
>      current batch. For example, it could be used to determine whether
>      all
>      segments of a multi-segment packet can be enqueued in the same batch
>      or not
>      (to avoid half-offload of the packet).
> 
>     #Could you share more details on the use case with vhost?
>    # Are they planning to use this in fast path if so it need to move as
>    fast path function pointer?
I believe the intent is to use it on fastpath, but I would assume only once
per burst, so the penalty for non-fastpath may be acceptable. As you point
out - for an app that really doesn't want to have to pay that penalty,
tracking ring use itself is possible.

The desire for fast-path use is also why I suggested having the space as an
optional return parameter from the submit API call. It could logically also
be a return value from the "completed" call, which might actually make more
sense.

>    # Assume the use case needs N rte_dma_copy to complete a logical copy
>    at vhost level. Is the any issue in half-offload, meaning when N th one
>    successfully completed then only the logical copy is completed. Right?

Yes, as I understand it, the issue is for multi-segment packets, where we
only want to enqueue the first segment if we know we will success with the
final one too.

>    # There is already nb_desc with which a dma_queue is configured. So if
>    the application does its accounting properly, it knows how many desc it
>    has used up and how many completions it has processed.

Agreed. It's just more work for the app, and for simplicity and
completeness I think we should add this API. Because there are other
options I think it should be available, but not as a fast-path fn (though
again, the difference is likely very small for something not called for
every enqueue).

>    Would like to understand more details on this API usage.
> 
Adding Sunil and Jiayu on CC who are looking at this area from the OVS and
vhost sides.

/Bruce

Reply via email to