From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxime Coquelin Subject: Re: [PATCH v2 4/7] vhost: translate iovas at vectors fill time Date: Wed, 27 Jun 2018 10:38:53 +0200 Message-ID: <4bc109b3-99f3-2266-e672-444c59c2fdbb@redhat.com> References: <20180623071127.22999-1-maxime.coquelin@redhat.com> <20180623071127.22999-5-maxime.coquelin@redhat.com> <20180625022143.GA19607@debian> <45538e52-174b-7608-5320-f4ff06afc250@redhat.com> <20180625103124.GA16690@debian> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: zhihong.wang@intel.com, dev@dpdk.org To: Tiwei Bie Return-path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by dpdk.org (Postfix) with ESMTP id 296751B5F6 for ; Wed, 27 Jun 2018 10:38:56 +0200 (CEST) In-Reply-To: <20180625103124.GA16690@debian> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 06/25/2018 12:31 PM, Tiwei Bie wrote: > On Mon, Jun 25, 2018 at 09:19:34AM +0200, Maxime Coquelin wrote: >> On 06/25/2018 04:21 AM, Tiwei Bie wrote: >>> On Sat, Jun 23, 2018 at 09:11:24AM +0200, Maxime Coquelin wrote: > [...] >>>> @@ -293,7 +314,8 @@ fill_vec_buf(struct virtio_net *dev, struct vhost_virtqueue *vq, >>>> static inline int >>>> reserve_avail_buf(struct virtio_net *dev, struct vhost_virtqueue *vq, >>>> uint32_t size, struct buf_vector *buf_vec, >>>> - uint16_t *num_buffers, uint16_t avail_head) >>>> + uint16_t *num_buffers, uint16_t avail_head, >>>> + uint16_t *nr_vec) >>>> { >>>> uint16_t cur_idx; >>>> uint32_t vec_idx = 0; >>>> @@ -315,7 +337,8 @@ reserve_avail_buf(struct virtio_net *dev, struct vhost_virtqueue *vq, >>>> return -1; >>>> if (unlikely(fill_vec_buf(dev, vq, cur_idx, &vec_idx, buf_vec, >>>> - &head_idx, &len) < 0)) >>>> + &head_idx, &len, >>>> + VHOST_ACCESS_RO) < 0)) >>> >>> reserve_avail_buf() is called by virtio_dev_rx(), >>> so the write perm is needed. >> Right. >> >> To avoid having to pass the perms, I wonder if it wouldn't be better to >> rely on the descriptors' VRING_DESC_F_WRITE flag. >> > > Currently, DPDK vhost net doesn't check this flag, > so it could cause problems in some cases. If we > want to rely on this flag, I think we still need > to pass something similar to tell fill_vec_buf() > whether the bufs will be written or read, so the > flag can be checked. Right, let's keep the perm parameter for now. Thanks, Maxime > Best regards, > Tiwei Bie >