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 33B73C32C for ; Wed, 11 May 2016 00:04:01 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP; 10 May 2016 15:04:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,606,1455004800"; d="scan'208";a="972978130" Received: from yliu-dev.sh.intel.com (HELO yliu-dev) ([10.239.67.162]) by orsmga002.jf.intel.com with ESMTP; 10 May 2016 15:03:59 -0700 Date: Tue, 10 May 2016 15:08:45 -0700 From: Yuanhan Liu To: Rich Lane Cc: dev@dpdk.org, "huawei.xie" Message-ID: <20160510220845.GW5641@yliu-dev.sh.intel.com> References: <1462236378-7604-1-git-send-email-yuanhan.liu@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Subject: Re: [dpdk-dev] [PATCH 0/3] [RFC] vhost: micro vhost optimization 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, 10 May 2016 22:04:01 -0000 On Tue, May 10, 2016 at 02:49:43PM -0700, Rich Lane wrote: > I see a significant performance improvement with these patches, around 5% at 64 > bytes. Thanks for testing. > > The one patch that didn't give any performance boost for me was "vhost: arrange > virtio_net fields for better cache sharing". Yeah, same here from my test. I mean, in theory, it should give us a tiny boost, it doesn't in real life though. And since it (should) do no harm, I would still include this patch in this set. Maybe I should have noted at first that no real perf gain from the 3rd patch. --yliu > > Tested-by: Rich Lane > > On Mon, May 2, 2016 at 5:46 PM, Yuanhan Liu > wrote: > > Here is a small patch set does the micro optimization, which brings about > 10% performance boost in my 64B packet testing, with the following topo: > >     pkt generator <----> NIC <-----> Virtio NIC > > Patch 1 pre updates the used ring and update them in batch. It should be > feasible from my understanding: there will be no issue, guest driver will > not start processing them as far as we haven't updated the "used->idx" > yet. I could miss something though. > > Patch 2 saves one check for small packets (that can be hold in one desc > buf and mbuf). > > Patch 3 moves several frequently used fields into one cache line, for > better cache sharing. > > Note that this patch set is based on my latest vhost ABI refactoring > patchset. > > > --- > Yuanhan Liu (3): >   vhost: pre update used ring for Tx and Rx >   vhost: optimize dequeue for small packets >   vhost: arrange virtio_net fields for better cache sharing > >  lib/librte_vhost/vhost-net.h  |   8 +-- >  lib/librte_vhost/vhost_rxtx.c | 110 > ++++++++++++++++++++++++------------------ >  2 files changed, 68 insertions(+), 50 deletions(-) > > -- > 1.9.0 > > >