From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yuanhan Liu Subject: Re: 17.02 Roadmap Date: Tue, 11 Oct 2016 13:32:18 +0800 Message-ID: <20161011053218.GL1597@yliu-dev.sh.intel.com> References: <26FA93C7ED1EAA44AB77D62FBE1D27BA675F11C5@IRSMSX108.ger.corp.intel.com> <1998191.9HGrB6oKr3@xps13> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "O'Driscoll, Tim" , dev@dpdk.org, Maxime Coquelin , "Harris, James R" , "Liu, Changpeng" To: Thomas Monjalon Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 85A576CBD for ; Tue, 11 Oct 2016 07:31:28 +0200 (CEST) Content-Disposition: inline In-Reply-To: <1998191.9HGrB6oKr3@xps13> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Mon, Oct 10, 2016 at 10:42:58PM +0200, Thomas Monjalon wrote: > > Support New Device Types in Vhost-User: Support will be added to vhost-user for new device types including vhost-scsi and vhost-blk. > > Great! > Is it only related to networking or should we expect some storage-related > code or drivers to come up? It's not only netowrking related. It just introduces few more APIs to export those buf infos (virt addr, phys addr, len, etc) to applications, so that they can handle/parse the data in the way they want. For example, for SPDK (https://01.org/spdk), they can use those APIs to fetch guest data and parse it following virtio-SCSI spec. The dequeue path (guest Tx) might look like something below: rte_vhost_dequeue_vring_desc_burst(vid, queue_id, iov, count) { for (i = 0; i < count; i++) { desc_idx = get_next_desc(); iov[i]->addr = desc_virt_addr(desc[desc_idx]->addr); iov[i]->phys_addr = desc_phys_addr(desc[desc_idx]->addr); iov[i]->len = desc[desc_idx]->len; iov[i]->desc = desc_idx; } return i; } rte_vhost_update_used_ring(vid, queue_id, descs, count) { for (i = 0; i < count; i++) { used_idx = get_next_used_idx(); vq->used->ring[used_idx] = descs[i]; } vq->used->idx += i; } And we introduce similar APIs to the enqueue path. --yliu