Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp7130759imm; Sun, 20 May 2018 19:35:16 -0700 (PDT) X-Google-Smtp-Source: AB8JxZr8Tcsr1lVzyzslcv0/v4mLH7QIQG2RmI6X6acZlfjvOxFNeFUB4fTvEJZ0Z9WDt/FznDt0 X-Received: by 2002:a62:f80c:: with SMTP id d12-v6mr18339697pfh.159.1526870116765; Sun, 20 May 2018 19:35:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526870116; cv=none; d=google.com; s=arc-20160816; b=lKpqpCBJCi1uoA/LbJR8BQaIsuuWksOb/XNhO/ZUpz/oTxs0mEXeuUrSB4XZTm8z15 478tIdvReffTCKdMvYxbWo9qZx0prbyXP1jJt+6d28wtInVjqzdPXn1Mp9SrfdJlIfE1 BVfjYnoI3i5eE3SdQBWx0j1fa2c5KC6q6PIqNzLbNTT2cmHnRcpBmWVlAqg8rju4whQ2 xfBOrETQedUL6VWhOuVyo0IjtYzsNH2RtHKwk/D0e7s5mCWjnQENtnB580+xY8y6jS59 v3ZbfONIp5SaO7qJzCOJmF3sKVYdtmBUT/w4HlHrTbtY1bBXEPncYAqdE+SvT1dJsteZ atyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=qLT0dp6JenAMgkTmlub6e4rDerm725BQHGnqN9jwqcY=; b=lL1vBWheChC3cY+pxTyG9azSx15SNJe/5gs7Y0L+AySMsewbETAt7JK0zIqs63Wn0b IFcNGbx6O+NbsPGZKWVQOFPgZgiJcjE1tRZ+0gG/P2KmcyYXTjO7+H91eWLqrPJgWVCp Z1c5kovzwJS8l+Y8kys0GRLi294F/jfZBC4YTuZJKnp2t4NFfTuOfIKgJgCrN/U64h6I hnDTJjkOvFZWdeClvrEqiyEJX72aFxdGuYR38XTcCKc1fX0oNcXz3QRUcfnUc1SpyDV9 dS70nnsqyO5ccnzziaOuPH1s/K95XhIquDNmBlE32qYgSXHOap/oSM+Bb+ANHk4sBi65 v5+Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m2-v6si13353041pfb.259.2018.05.20.19.35.02; Sun, 20 May 2018 19:35:16 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752691AbeEUCds (ORCPT + 99 others); Sun, 20 May 2018 22:33:48 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:58638 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751094AbeEUCdp (ORCPT ); Sun, 20 May 2018 22:33:45 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9D3004022407; Mon, 21 May 2018 02:33:44 +0000 (UTC) Received: from [10.72.12.38] (ovpn-12-38.pek2.redhat.com [10.72.12.38]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AA45EAFD63; Mon, 21 May 2018 02:33:35 +0000 (UTC) Subject: Re: [RFC V4 PATCH 0/8] Packed ring layout for vhost To: Wei Xu Cc: mst@redhat.com, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, jfreimann@redhat.com, tiwei.bie@intel.com References: <1526473941-16199-1-git-send-email-jasowang@redhat.com> <20180520162514.GA21958@wei-ubt> From: Jason Wang Message-ID: <9a8425be-5c39-eff7-d808-836b825ed890@redhat.com> Date: Mon, 21 May 2018 10:33:30 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180520162514.GA21958@wei-ubt> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Mon, 21 May 2018 02:33:44 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.6]); Mon, 21 May 2018 02:33:44 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'jasowang@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2018年05月21日 00:25, Wei Xu wrote: > On Wed, May 16, 2018 at 08:32:13PM +0800, Jason Wang wrote: >> Hi all: >> >> This RFC implement packed ring layout. The code were tested with >> Tiwei's RFC V3 ahttps://lkml.org/lkml/2018/4/25/34. Some fixups and >> tweaks were needed on top of Tiwei's code to make it run for event >> index. > Could you please show the change based on Tiwei's code to easy other's > test? Please try Tiwei's V4 instead of just waiting for the fixup. It should work unless you don't try zerocopy and vIOMMU. >> Pktgen reports about 20% improvement on PPS (event index is off). More >> testing is ongoing. >> >> Notes for tester: >> >> - Start from this version, vhost need qemu co-operation to work >> correctly. Or you can comment out the packed specific code for >> GET/SET_VRING_BASE. > Do you mean the code in vhost_virtqueue_start/stop? For qemu, probably. > Both Tiwei's and your v3 > work fortunately correctly which should be avoided since the ring should be > definitely different. I don't understand this, you mean reset work? Thanks > > Wei > >> Changes from V3: >> - Fix math on event idx checking >> - Sync last avail wrap counter through GET/SET_VRING_BASE >> - remove desc_event prefix in the driver/device structure >> >> Changes from V2: >> - do not use & in checking desc_event_flags >> - off should be most significant bit >> - remove the workaround of mergeable buffer for dpdk prototype >> - id should be in the last descriptor in the chain >> - keep _F_WRITE for write descriptor when adding used >> - device flags updating should use ADDR_USED type >> - return error on unexpected unavail descriptor in a chain >> - return false in vhost_ve_avail_empty is descriptor is available >> - track last seen avail_wrap_counter >> - correctly examine available descriptor in get_indirect_packed() >> - vhost_idx_diff should return u16 instead of bool >> >> Changes from V1: >> >> - Refactor vhost used elem code to avoid open coding on used elem >> - Event suppression support (compile test only). >> - Indirect descriptor support (compile test only). >> - Zerocopy support. >> - vIOMMU support. >> - SCSI/VSOCK support (compile test only). >> - Fix several bugs >> >> Jason Wang (8): >> vhost: move get_rx_bufs to vhost.c >> vhost: hide used ring layout from device >> vhost: do not use vring_used_elem >> vhost_net: do not explicitly manipulate vhost_used_elem >> vhost: vhost_put_user() can accept metadata type >> virtio: introduce packed ring defines >> vhost: packed ring support >> vhost: event suppression for packed ring >> >> drivers/vhost/net.c | 136 ++---- >> drivers/vhost/scsi.c | 62 +-- >> drivers/vhost/vhost.c | 861 ++++++++++++++++++++++++++++++++----- >> drivers/vhost/vhost.h | 47 +- >> drivers/vhost/vsock.c | 42 +- >> include/uapi/linux/virtio_config.h | 9 + >> include/uapi/linux/virtio_ring.h | 32 ++ >> 7 files changed, 928 insertions(+), 261 deletions(-) >> >> -- >> 2.7.4 >>