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 A8EFCA04DB; Fri, 11 Dec 2020 03:49:55 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EDA1FAC9B; Fri, 11 Dec 2020 03:49:53 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 56A0D37B7 for ; Fri, 11 Dec 2020 03:49:52 +0100 (CET) IronPort-SDR: 83PchSUUEJPFrsFKCbow1Jv7ST/V8YCGCcyGuVd1eE0MyPXORqrlNsoRYQ58/CrI/fdU9GyH9J hGKrD/p9adBw== X-IronPort-AV: E=McAfee;i="6000,8403,9831"; a="162126925" X-IronPort-AV: E=Sophos;i="5.78,409,1599548400"; d="scan'208";a="162126925" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Dec 2020 18:49:50 -0800 IronPort-SDR: Gx6RGbdst7XbVdiVegaJUks8maA9kGOWVR7vO7tEXDVrHLzqrNjX3YjF/oo1bL/ejUDIvmG+Sj 8gvpoB36Fwqw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,409,1599548400"; d="scan'208";a="321081925" Received: from npg_dpdk_virtio_jiayuhu_07.sh.intel.com ([10.67.118.193]) by fmsmga008.fm.intel.com with ESMTP; 10 Dec 2020 18:49:48 -0800 From: Jiayu Hu To: dev@dpdk.org Cc: maxime.coquelin@redhat.com, chenbo.xia@intel.com, cheng1.jiang@intel.com, yinan.wang@intel.com, Jiayu Hu Date: Fri, 11 Dec 2020 04:21:38 -0500 Message-Id: <1607678500-172518-1-git-send-email-jiayu.hu@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH 0/2] Enhance Async Enqueue for Small Packets 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" Async enqueue offloads large copies to DMA devices, and small copies are still performed by the CPU. However, it requires users to get enqueue completed packets by rte_vhost_poll_enqueue_completed(), even if they are completed by the CPU when rte_vhost_submit_enqueue_burst() returns. This design incurs extra overheads of tracking completed pktmbufs and function calls, thus degrading performance on small packets. The first patch cleans up async enqueue code, and the second patch enables rte_vhost_submit_enqueue_burst() to return completed packets. Jiayu Hu (2): vhost: cleanup async enqueue vhost: enhance async enqueue for small packets lib/librte_vhost/rte_vhost_async.h | 24 ++-- lib/librte_vhost/vhost.c | 14 +- lib/librte_vhost/vhost.h | 7 +- lib/librte_vhost/vhost_user.c | 7 +- lib/librte_vhost/virtio_net.c | 256 +++++++++++++++++++++---------------- 5 files changed, 171 insertions(+), 137 deletions(-) -- 2.7.4