From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 8BAEFA00C2;
	Mon, 22 Aug 2022 05:48:09 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 1ACF441132;
	Mon, 22 Aug 2022 05:48:09 +0200 (CEST)
Received: from foss.arm.com (foss.arm.com [217.140.110.172])
 by mails.dpdk.org (Postfix) with ESMTP id CB485410FA
 for <dev@dpdk.org>; Mon, 22 Aug 2022 05:48:07 +0200 (CEST)
Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
 by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id F0B3B13D5;
 Sun, 21 Aug 2022 20:48:09 -0700 (PDT)
Received: from net-arm-n1amp-02.shanghai.arm.com
 (net-arm-n1amp-02.shanghai.arm.com [10.169.210.108])
 by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 62EA93F718;
 Sun, 21 Aug 2022 20:48:04 -0700 (PDT)
From: Joyce Kong <joyce.kong@arm.com>
To: jgrajcia@cisco.com, stephen@networkplumber.org, huzaifa.rahman@emumba.com
Cc: dev@dpdk.org, nd@arm.com, mb@smartsharesystems.com, ruifeng.wang@arm.com,
 Joyce Kong <joyce.kong@arm.com>
Subject: [PATCH v3 0/2] add a fast path for memif Rx/Tx
Date: Mon, 22 Aug 2022 03:47:29 +0000
Message-Id: <20220822034731.528424-1-joyce.kong@arm.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20220701102815.1444223-2-joyce.kong@arm.com>
References: <20220701102815.1444223-2-joyce.kong@arm.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
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

For memif non-zero-copy mode, there is a branch to compare
the mbuf and memif buffer size during memory copy. Add a
fast memcpy path by removing this branch with mbuf and memif
buffer size defined at compile time. For Rx fast path, bulk
allocating mbufs to get additional speedup. For Tx fast path,
bulk free mbufs which come from the same mempool.

When mbuf == memif buffer size, both Rx/Tx would choose the
fast memcpy path. When mbuf < memif buffer size, the Rx
chooses previous memcpy path while Tx chooses fast memcpy
path. When mbuf > memif buffer size, the Rx chooses fast
memcpy path while Tx chooses previous memcpy path.

Test with 1p1q on N1SDP AArch64 server,
---------------------------------------------------------
  buf size  | memif = mbuf | memif < mbuf | memif > mbuf
---------------------------------------------------------
non-zc gain |    47.16%    |    24.67%    |    12.47%
---------------------------------------------------------
   zc gain  |    20.96%    |     9.16%    |    10.66%
---------------------------------------------------------

Test with 1p1q on Cascade Lake Xeon X86 server,
---------------------------------------------------------
  buf size  | memif = mbuf | memif < mbuf | memif > mbuf
---------------------------------------------------------
non-zc gain |    23.52%    |    14.20%    |     5.10%
---------------------------------------------------------
   zc gain  |    17.49%    |    10.62%    |    12.42%
---------------------------------------------------------

v3:
 Add bulk allocation to get additional speedup for memif Rx
 fast path. <Stephen Hemminger>

v2:
 Rebase v1 and update commit message.

Joyce Kong (2):
  net/memif: add a Rx fast path
  net/memif: add a Tx fast path

 drivers/net/memif/rte_eth_memif.c | 271 +++++++++++++++++++++---------
 1 file changed, 188 insertions(+), 83 deletions(-)

-- 
2.25.1