From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 48154B674 for ; Tue, 17 Feb 2015 07:04:46 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP; 16 Feb 2015 21:59:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,592,1418112000"; d="scan'208";a="678971373" Received: from pgsmsx102.gar.corp.intel.com ([10.221.44.80]) by fmsmga002.fm.intel.com with ESMTP; 16 Feb 2015 22:04:42 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by PGSMSX102.gar.corp.intel.com (10.221.44.80) with Microsoft SMTP Server (TLS) id 14.3.195.1; Tue, 17 Feb 2015 14:04:26 +0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.192]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.161]) with mapi id 14.03.0195.001; Tue, 17 Feb 2015 14:04:25 +0800 From: "Xie, Huawei" To: "Ouyang, Changchun" , "dev@dpdk.org" Thread-Topic: [PATCH v4 00/26] Single virtio implementation Thread-Index: AdBKd5SEJQe7QgkyTmmsRHo/XO43Xg== Date: Tue, 17 Feb 2015 06:04:25 +0000 Message-ID: References: <1422516249-14596-1-git-send-email-changchun.ouyang@intel.com> <1423444455-11330-1-git-send-email-changchun.ouyang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4 00/26] Single virtio implementation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Feb 2015 06:04:47 -0000 Acked-by Huawei Xie =0A= =0A= On 2/9/2015 9:14 AM, Ouyang, Changchun wrote:=0A= > This is the patch set for single virtio implementation.=0A= > =0A= > Why we need single virtio?=0A= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= > As we know currently there are at least 3 virtio PMD driver implementatio= ns:=0A= > A) lib/librte_pmd_virtio(refer as virtio A);=0A= > B) virtio_net_pmd by 6wind(refer as virtio B);=0A= > C) virtio by Brocade/vyatta(refer as virtio C);=0A= > =0A= > Integrating 3 implementations into one could reduce the maintaining cost = and time,=0A= > in other hand, user don't need practice their application on 3 variant on= e by one to see=0A= > which one is the best for them;=0A= > =0A= > What's the status?=0A= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= > Currently virtio A has covered most features of virtio B except for using= port io to get pci resource,=0A= > so there is a patch(17/22) to resolve it. But on the other hand there are= a few differences between=0A= > virtio A and virtio C, it needs integrate features/codes of virtio C into= virtio A.=0A= > This patch set bases on two original RFC patch sets from Stephen Hemminge= r[stephen@networkplumber.org]=0A= > Refer to [http://dpdk.org/ml/archives/dev/2014-August/004845.html ] for t= he original one.=0A= > This patch set also resolves some conflict with latest codes, removed dup= licated codes, fix some=0A= > issues in original codes.=0A= > =0A= > What this patch set contains:=0A= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=0A= > 1) virtio: Rearrange resource initialization, it extracts a function to= setup PCI resources;=0A= > 2) virtio: Use weaker barriers, as DPDK driver only has to deal with th= e case of running on PCI=0A= > and with SMP, In this case, the code can use the weaker barriers ins= tead of using hard (fence)=0A= > barriers. This may help performance a bit;=0A= > 3) virtio: Allow starting with link down, other driver has similar beha= vior;=0A= > 4) virtio: Add support for Link State interrupt;=0A= > 5) ether: Add soft vlan encap/decap functions, it helps if HW don't sup= port vlan strip;=0A= > 6) virtio: Use software vlan stripping;=0A= > 7) virtio: Remove unnecessary adapter structure;=0A= > 8) virtio: Remove redundant vq_alignment, as vq alignment is always 4K,= so use constant when needed;=0A= > 9) virtio: Fix how states are handled during initialization, this is to= match Linux kernel;=0A= > 10) virtio: Make vtpci_get_status a local function as it is used in one= file;=0A= > 11) virtio: Check for packet headroom at compile time;=0A= > 12) virtio: Move allocation before initialization to avoid being stuck = in middle of virtio init;=0A= > 13) virtio: Add support for vlan filtering;=0A= > 14) virtio: Add support for multiple mac addresses;=0A= > 15) virtio: Add ability to set MAC address;=0A= > 16) virtio: Free mbuf's with threshold, this makes its behavior more li= ke ixgbe;=0A= > 17) virtio: Use port IO to get PCI resource for security reasons and ma= tch virtio-net-pmd;=0A= > 18) virtio: Fix descriptor index issue;=0A= > 19) ether: Fix vlan strip/insert issue;=0A= > 20) example/vhost: Avoid inserting vlan twice and guest and host;=0A= > 21) example/vhost: Add vlan-strip cmd line option to turn on/off vlan s= trip on host;=0A= > 22) virtio: Use soft vlan strip in mergeable Rx path, this makes it has= consistent logic=0A= > with the normal Rx path.=0A= > =0A= > Changes in v2:=0A= > 23) virtio: Fix zero copy break issue, the vring should be ready before= virtio PMD set=0A= > the status of DRIVER_OK;=0A= > 24) virtio: Remove unnecessary hotspots in data path.=0A= > =0A= > Changes in v3:=0A= > 25) virtio: Fix wmb issue;=0A= > 26) Fix one minor issue in patch 20, also fix its idention.=0A= >=0A= > Changes in v4:=0A= > 27) Fix updating vring descriptor index issue and memory barrier issue;= =0A= > 28) Reslove comments for patch 17.=0A= >=0A= > Changchun Ouyang (10):=0A= > virtio: Use port IO to get PCI resource.=0A= > virtio: Fix descriptor index issue=0A= > ether: Fix vlan strip/insert issue=0A= > example/vhost: Avoid inserting vlan twice=0A= > example/vhost: Add vlan-strip cmd line option=0A= > virtio: Use soft vlan strip in mergeable Rx path=0A= > virtio: Fix zero copy break issue=0A= > virtio: Remove hotspots=0A= > virtio: Fix wmb issue=0A= > virtio: Fix updating vring descriptor index issue=0A= >=0A= > Stephen Hemminger (16):=0A= > virtio: Rearrange resource initialization=0A= > virtio: Use weaker barriers=0A= > virtio: Allow starting with link down=0A= > virtio: Add support for Link State interrupt=0A= > ether: Add soft vlan encap/decap functions=0A= > virtio: Use software vlan stripping=0A= > virtio: Remove unnecessary adapter structure=0A= > virtio: Remove redundant vq_alignment=0A= > virtio: Fix how states are handled during initialization=0A= > virtio: Make vtpci_get_status local=0A= > virtio: Check for packet headroom at compile time=0A= > virtio: Move allocation before initialization=0A= > virtio: Add support for vlan filtering=0A= > virtio: Add suport for multiple mac addresses=0A= > virtio: Add ability to set MAC address=0A= > virtio: Free mbuf's with threshold=0A= >=0A= > examples/vhost/main.c | 70 +++--=0A= > lib/librte_ether/rte_ethdev.h | 8 +=0A= > lib/librte_ether/rte_ether.h | 76 +++++=0A= > lib/librte_pmd_virtio/Makefile | 2 +=0A= > lib/librte_pmd_virtio/virtio_ethdev.c | 519 ++++++++++++++++++++++++++--= ------=0A= > lib/librte_pmd_virtio/virtio_ethdev.h | 12 +-=0A= > lib/librte_pmd_virtio/virtio_pci.c | 20 +-=0A= > lib/librte_pmd_virtio/virtio_pci.h | 8 +-=0A= > lib/librte_pmd_virtio/virtio_rxtx.c | 154 +++++++---=0A= > lib/librte_pmd_virtio/virtqueue.h | 59 +++-=0A= > 10 files changed, 729 insertions(+), 199 deletions(-)=0A= >=0A= =0A=