Message ID | 20181219082113.24455-1-maxime.coquelin@redhat.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 117611B6D1; Wed, 19 Dec 2018 09:21:27 +0100 (CET) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id B6FA31B674; Wed, 19 Dec 2018 09:21:25 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4EC9C1B98; Wed, 19 Dec 2018 08:21:24 +0000 (UTC) Received: from localhost.localdomain (ovpn-112-26.ams2.redhat.com [10.36.112.26]) by smtp.corp.redhat.com (Postfix) with ESMTP id B828A17DD3; Wed, 19 Dec 2018 08:21:16 +0000 (UTC) From: Maxime Coquelin <maxime.coquelin@redhat.com> To: dev@dpdk.org, i.maximets@samsung.com, tiwei.bie@intel.com, zhihong.wang@intel.com, jasowang@redhat.com, mst@redhat.com Cc: stable@dpdk.org, Maxime Coquelin <maxime.coquelin@redhat.com> Date: Wed, 19 Dec 2018 09:21:09 +0100 Message-Id: <20181219082113.24455-1-maxime.coquelin@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 19 Dec 2018 08:21:24 +0000 (UTC) Subject: [dpdk-dev] [PATCH v2 0/4] vhost: add missing barriers, move prefetching X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
vhost: add missing barriers, move prefetching
|
|
Message
Maxime Coquelin
Dec. 19, 2018, 8:21 a.m. UTC
This series adds missing read barriers after reading avail index for split ring and desc flags for packed ring. Also, it turns out that some descriptors prefetching are either badly placed, or useless, last part of the series fixes that. With the series applied, I get between 0 and 4% gain depending on the benchmark (testpmd txonly/rxonly/io). Thanks to Jason for reporting the missing read barriers. Changes since v1: ================= - Drop volatile removal patch (Ilya) - Improve commit messages for RMB patches (Ilya) Maxime Coquelin (4): vhost: enforce avail index and desc read ordering vhost: enforce desc flags and content read ordering vhost: prefetch descriptor after the read barrier vhost: remove useless prefetch for packed ring descriptor lib/librte_vhost/virtio_net.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-)
Comments
On Wed, Dec 19, 2018 at 09:21:09AM +0100, Maxime Coquelin wrote: > This series adds missing read barriers after reading avail index > for split ring and desc flags for packed ring. > > Also, it turns out that some descriptors prefetching are either > badly placed, or useless, last part of the series fixes that. > > With the series applied, I get between 0 and 4% gain depending > on the benchmark (testpmd txonly/rxonly/io). > > Thanks to Jason for reporting the missing read barriers. Acked-by: Michael S. Tsirkin <mst@redhat.com> But I wonder what effect this has on ARM where RMB isn't a NOP. Ilya do you happen to have any data? > Changes since v1: > ================= > - Drop volatile removal patch (Ilya) > - Improve commit messages for RMB patches (Ilya) > > Maxime Coquelin (4): > vhost: enforce avail index and desc read ordering > vhost: enforce desc flags and content read ordering > vhost: prefetch descriptor after the read barrier > vhost: remove useless prefetch for packed ring descriptor > > lib/librte_vhost/virtio_net.c | 27 ++++++++++++++++++++++----- > 1 file changed, 22 insertions(+), 5 deletions(-) > > -- > 2.17.2
On 19.12.2018 18:50, Michael S. Tsirkin wrote: > On Wed, Dec 19, 2018 at 09:21:09AM +0100, Maxime Coquelin wrote: >> This series adds missing read barriers after reading avail index >> for split ring and desc flags for packed ring. >> >> Also, it turns out that some descriptors prefetching are either >> badly placed, or useless, last part of the series fixes that. >> >> With the series applied, I get between 0 and 4% gain depending >> on the benchmark (testpmd txonly/rxonly/io). >> >> Thanks to Jason for reporting the missing read barriers. > > Acked-by: Michael S. Tsirkin <mst@redhat.com> > > But I wonder what effect this has on ARM where RMB isn't a NOP. > Ilya do you happen to have any data? Hi. My rough testing shows no significant performance difference on ARMv8. > >> Changes since v1: >> ================= >> - Drop volatile removal patch (Ilya) >> - Improve commit messages for RMB patches (Ilya) >> >> Maxime Coquelin (4): >> vhost: enforce avail index and desc read ordering >> vhost: enforce desc flags and content read ordering >> vhost: prefetch descriptor after the read barrier >> vhost: remove useless prefetch for packed ring descriptor >> >> lib/librte_vhost/virtio_net.c | 27 ++++++++++++++++++++++----- >> 1 file changed, 22 insertions(+), 5 deletions(-) >> >> -- >> 2.17.2 > >
On Wed, Dec 19, 2018 at 09:21:09AM +0100, Maxime Coquelin wrote: > This series adds missing read barriers after reading avail index > for split ring and desc flags for packed ring. > > Also, it turns out that some descriptors prefetching are either > badly placed, or useless, last part of the series fixes that. > > With the series applied, I get between 0 and 4% gain depending > on the benchmark (testpmd txonly/rxonly/io). > > Thanks to Jason for reporting the missing read barriers. > > Changes since v1: > ================= > - Drop volatile removal patch (Ilya) > - Improve commit messages for RMB patches (Ilya) > > Maxime Coquelin (4): > vhost: enforce avail index and desc read ordering > vhost: enforce desc flags and content read ordering > vhost: prefetch descriptor after the read barrier > vhost: remove useless prefetch for packed ring descriptor > > lib/librte_vhost/virtio_net.c | 27 ++++++++++++++++++++++----- > 1 file changed, 22 insertions(+), 5 deletions(-) Acked-by: Tiwei Bie <tiwei.bie@intel.com>
On 12/19/18 9:21 AM, Maxime Coquelin wrote: > This series adds missing read barriers after reading avail index > for split ring and desc flags for packed ring. > > Also, it turns out that some descriptors prefetching are either > badly placed, or useless, last part of the series fixes that. > > With the series applied, I get between 0 and 4% gain depending > on the benchmark (testpmd txonly/rxonly/io). > > Thanks to Jason for reporting the missing read barriers. > > Changes since v1: > ================= > - Drop volatile removal patch (Ilya) > - Improve commit messages for RMB patches (Ilya) > > Maxime Coquelin (4): > vhost: enforce avail index and desc read ordering > vhost: enforce desc flags and content read ordering > vhost: prefetch descriptor after the read barrier > vhost: remove useless prefetch for packed ring descriptor > > lib/librte_vhost/virtio_net.c | 27 ++++++++++++++++++++++----- > 1 file changed, 22 insertions(+), 5 deletions(-) > Applied to dpdk-next-virtio. Maxime