From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 690AEA034E; Thu, 23 Apr 2020 17:18:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 969451C1DC; Thu, 23 Apr 2020 17:18:30 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id F27661C1DA for ; Thu, 23 Apr 2020 17:18:28 +0200 (CEST) IronPort-SDR: xKdgp5blG/j8D/75yPt8EPiYB//tn+saIfHJfd+vY5iCCCCS+Bg9UsRleSo3TOkeOcdGzP0mZn nvVTWMl+3J0A== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2020 08:18:27 -0700 IronPort-SDR: VnpqvL25nho+MNcxF5LE5MJmeBuOxXsuVwjN98Wmb33SOwS152ICM4QB1Jy6M7Rd9fFZI+PzCO j9jBu0hyqoNw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,307,1583222400"; d="scan'208";a="301243605" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by FMSMGA003.fm.intel.com with ESMTP; 23 Apr 2020 08:18:27 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 23 Apr 2020 08:17:43 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by SHSMSX603.ccr.corp.intel.com (10.109.6.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 23 Apr 2020 23:17:41 +0800 Received: from shsmsx603.ccr.corp.intel.com ([10.109.6.143]) by SHSMSX603.ccr.corp.intel.com ([10.109.6.143]) with mapi id 15.01.1713.004; Thu, 23 Apr 2020 23:17:41 +0800 From: "Wang, Yinan" To: "Liu, Yong" , "maxime.coquelin@redhat.com" , "Ye, Xiaolong" , "Wang, Zhihong" CC: "Van Haaren, Harry" , "dev@dpdk.org" , "Liu, Yong" Thread-Topic: [dpdk-dev] [PATCH v8 0/9] add packed ring vectorized path Thread-Index: AQHWGSuTtxBTSXCCmUuE12SbfIMlo6iG0gig Date: Thu, 23 Apr 2020 15:17:41 +0000 Message-ID: References: <20200313174230.74661-1-yong.liu@intel.com> <20200423123106.78513-1-yong.liu@intel.com> In-Reply-To: <20200423123106.78513-1-yong.liu@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v8 0/9] add packed ring vectorized path 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" Tested-by: Wang, Yinan > -----Original Message----- > From: dev On Behalf Of Marvin Liu > Sent: 2020=1B$BG/=1B(B4=1B$B7n=1B(B23=1B$BF|=1B(B 20:31 > To: maxime.coquelin@redhat.com; Ye, Xiaolong ; > Wang, Zhihong > Cc: Van Haaren, Harry ; dev@dpdk.org; Liu, > Yong > Subject: [dpdk-dev] [PATCH v8 0/9] add packed ring vectorized path >=20 > This patch set introduced vectorized path for packed ring. >=20 > The size of packed ring descriptor is 16Bytes. Four batched descriptors a= re > just placed into one cacheline. AVX512 instructions can well handle this = kind > of data. Packed ring TX path can fully transformed into vectorized path. > Packed ring Rx path can be vectorized when requirements met(LRO and > mergeable disabled). >=20 > New option RTE_LIBRTE_VIRTIO_INC_VECTOR will be introduced in this patch > set. This option will unify split and packed ring vectorized path default= setting. > Meanwhile user can specify whether enable vectorized path at runtime by > 'vectorized' parameter of virtio user vdev. >=20 > v8: > * fix meson build error on ubuntu16.04 and suse15 >=20 > v7: > * default vectorization is disabled > * compilation time check dependency on rte_mbuf structure > * offsets are calcuated when compiling > * remove useless barrier as descs are batched store&load > * vindex of scatter is directly set > * some comments updates > * enable vectorized path in meson build >=20 > v6: > * fix issue when size not power of 2 >=20 > v5: > * remove cpuflags definition as required extensions always come with > AVX512F on x86_64 > * inorder actions should depend on feature bit > * check ring type in rx queue setup > * rewrite some commit logs > * fix some checkpatch warnings >=20 > v4: > * rename 'packed_vec' to 'vectorized', also used in split ring > * add RTE_LIBRTE_VIRTIO_INC_VECTOR config for virtio ethdev > * check required AVX512 extensions cpuflags > * combine split and packed ring datapath selection logic > * remove limitation that size must power of two > * clear 12Bytes virtio_net_hdr >=20 > v3: > * remove virtio_net_hdr array for better performance > * disable 'packed_vec' by default >=20 > v2: > * more function blocks replaced by vector instructions > * clean virtio_net_hdr by vector instruction > * allow header room size change > * add 'packed_vec' option in virtio_user vdev > * fix build not check whether AVX512 enabled > * doc update >=20 >=20 > Marvin Liu (9): > net/virtio: add Rx free threshold setting > net/virtio: enable vectorized path > net/virtio: inorder should depend on feature bit > net/virtio-user: add vectorized path parameter > net/virtio: add vectorized packed ring Rx path > net/virtio: reuse packed ring xmit functions > net/virtio: add vectorized packed ring Tx path > net/virtio: add election for vectorized path > doc: add packed vectorized path >=20 > config/common_base | 1 + > doc/guides/nics/virtio.rst | 43 +- > drivers/net/virtio/Makefile | 37 ++ > drivers/net/virtio/meson.build | 15 + > drivers/net/virtio/virtio_ethdev.c | 95 ++- > drivers/net/virtio/virtio_ethdev.h | 6 + > drivers/net/virtio/virtio_pci.h | 3 +- > drivers/net/virtio/virtio_rxtx.c | 212 ++----- > drivers/net/virtio/virtio_rxtx_packed_avx.c | 665 ++++++++++++++++++++ > drivers/net/virtio/virtio_user_ethdev.c | 37 +- > drivers/net/virtio/virtqueue.c | 7 +- > drivers/net/virtio/virtqueue.h | 168 ++++- > 12 files changed, 1075 insertions(+), 214 deletions(-) > create mode 100644 drivers/net/virtio/virtio_rxtx_packed_avx.c >=20 > -- > 2.17.1