[dpdk-dev] [PATCH] vhost: add API for getting last_idx of vrings

Maxime Coquelin maxime.coquelin at redhat.com
Wed Mar 28 10:57:14 CEST 2018


Hi Tomasz,

On 03/05/2018 04:59 PM, Tomasz Kulasek wrote:
> vhost-net devices might keep track of last descriptors indices by
> themselves, and assuming they initially start at 0, but that is not the
> case for vhost-scsi. Initial last descriptor indices are set via
> VHOST_USER_SET_VRING_BASE message, and we cannot possibly predict what
> will they be. Setting these to vqueue->used->idx is also not an option,
> because there might be some yet unprocessed requests between these and
> the actual last_idx. This patch adds API for getting/setting last
> descriptor indices of vrings, so that they can be synchronized between
> user-device and rte_vhost.
> 
> The last_idx flow could be as following:
> 
>   * vhost start,
>   * received SET_VRING_BASE msg, last_idx is set on rte_vhost side,
>   * created user-device, last_idx pulled from rte_vhost,
>   * requests are being processed by user-device, last_idx changes,
>   * destroyed user-device, last_idx pushed to rte_vhost,
>   * at this point, vrings could be recreated and another SET_VRING_BASE
>     message could arrive, so last_idx would be set
>   * recreated user-device, last_idx pulled from rte_vhost.
> 
> 
> Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk at intel.com>
> Signed-off-by: Tomasz Kulasek <tomaszx.kulasek at intel.com>
> ---
>   lib/librte_vhost/rte_vhost.h | 24 ++++++++++++++++++++++++
>   lib/librte_vhost/vhost.c     | 27 +++++++++++++++++++++++++++
>   2 files changed, 51 insertions(+)
> 

I agree with the patch, but it is missing the declaration of the new API
in rte_vhost_version.map.

Thanks,
Maxime


More information about the dev mailing list