Hi Maxime, > -----Original Message----- > From: Maxime Coquelin [mailto:maxime.coque...@redhat.com] > Sent: Wednesday, March 28, 2018 10:57 > To: Kulasek, TomaszX <tomaszx.kula...@intel.com>; y...@fridaylinux.org > Cc: Verkamp, Daniel <daniel.verk...@intel.com>; Harris, James R > <james.r.har...@intel.com>; Wodkowski, PawelX <pawelx.wodkow...@intel.com>; > dev@dpdk.org; Stojaczyk, DariuszX <dariuszx.stojac...@intel.com> > Subject: Re: [dpdk-dev] [PATCH] vhost: add API for getting last_idx of vrings > > 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.stojac...@intel.com> > > Signed-off-by: Tomasz Kulasek <tomaszx.kula...@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
Yes, I will send v2. Tomasz