From mboxrd@z Thu Jan 1 00:00:00 1970 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) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9A1E8F68B7; Wed, 27 Jun 2018 08:38:55 +0000 (UTC) Received: from [10.36.112.39] (ovpn-112-39.ams2.redhat.com [10.36.112.39]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D1D262026D5B; Wed, 27 Jun 2018 08:38:54 +0000 (UTC) To: Tiwei Bie Cc: zhihong.wang@intel.com, dev@dpdk.org 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> From: Maxime Coquelin Message-ID: <4bc109b3-99f3-2266-e672-444c59c2fdbb@redhat.com> Date: Wed, 27 Jun 2018 10:38:53 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20180625103124.GA16690@debian> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Wed, 27 Jun 2018 08:38:55 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Wed, 27 Jun 2018 08:38:55 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'maxime.coquelin@redhat.com' RCPT:'' Subject: Re: [dpdk-dev] [PATCH v2 4/7] vhost: translate iovas at vectors fill time X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jun 2018 08:38:56 -0000 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 >