From patchwork Fri Mar 13 17:42:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marvin Liu X-Patchwork-Id: 66642 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 851ADA0567; Fri, 13 Mar 2020 11:07:26 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5F6F91C00E; Fri, 13 Mar 2020 11:07:26 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 2748D2BAA for ; Fri, 13 Mar 2020 11:07:23 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Mar 2020 03:07:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,548,1574150400"; d="scan'208";a="246653879" Received: from npg-dpdk-virtual-marvin-dev.sh.intel.com ([10.67.119.58]) by orsmga006.jf.intel.com with ESMTP; 13 Mar 2020 03:07:21 -0700 From: Marvin Liu To: maxime.coquelin@redhat.com, xiaolong.ye@intel.com, zhihong.wang@intel.com Cc: dev@dpdk.org, Marvin Liu Date: Sat, 14 Mar 2020 01:42:23 +0800 Message-Id: <20200313174230.74661-1-yong.liu@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [dpdk-dev] [PATCH v1 0/7] vectorize virtio packed ring datapath X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch set introduced vectorized datapath for packed ring. The size of packed ring descriptor is 16Bytes. Four batched descriptors can just placed into one cacheline. AVX512 instructions can well handle this kind of data. Packed ring TX datapath can fully transformed into vectorized datapath. Rx datapath also can be vectorized by limiated features(TSO and mergeable). Marvin Liu (7): net/virtio: add Rx free threshold setting net/virtio-user: add LRO parameter net/virtio: add vectorized packed ring Rx function net/virtio: reuse packed ring xmit functions net/virtio: add vectorized packed ring Tx function net/virtio: add election for vectorized datapath net/virtio: support meson build drivers/net/virtio/Makefile | 30 + drivers/net/virtio/meson.build | 1 + drivers/net/virtio/virtio_ethdev.c | 35 +- drivers/net/virtio/virtio_ethdev.h | 6 + drivers/net/virtio/virtio_pci.h | 2 + drivers/net/virtio/virtio_rxtx.c | 201 ++---- drivers/net/virtio/virtio_rxtx_packed_avx.c | 606 ++++++++++++++++++ .../net/virtio/virtio_user/virtio_user_dev.c | 8 +- .../net/virtio/virtio_user/virtio_user_dev.h | 2 +- drivers/net/virtio/virtio_user_ethdev.c | 17 +- drivers/net/virtio/virtqueue.h | 165 ++++- 11 files changed, 903 insertions(+), 170 deletions(-) create mode 100644 drivers/net/virtio/virtio_rxtx_packed_avx.c Tested-by: Wang, Yinan