From patchwork Tue Sep 23 11:08:15 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 456 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id E5D09B344; Tue, 23 Sep 2014 13:02:36 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 22B98137D for ; Tue, 23 Sep 2014 13:02:35 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP; 23 Sep 2014 03:59:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,862,1389772800"; d="scan'208";a="390290433" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by FMSMGA003.fm.intel.com with ESMTP; 23 Sep 2014 04:02:28 -0700 Received: from sivswdev02.ir.intel.com (sivswdev02.ir.intel.com [10.237.217.46]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id s8NB8ILC012723; Tue, 23 Sep 2014 12:08:18 +0100 Received: from sivswdev02.ir.intel.com (localhost [127.0.0.1]) by sivswdev02.ir.intel.com with ESMTP id s8NB8IHR010435; Tue, 23 Sep 2014 12:08:18 +0100 Received: (from bricha3@localhost) by sivswdev02.ir.intel.com with id s8NB8IbE010431; Tue, 23 Sep 2014 12:08:18 +0100 From: Bruce Richardson To: dev@dpdk.org Date: Tue, 23 Sep 2014 12:08:15 +0100 Message-Id: <1411470497-10209-4-git-send-email-bruce.richardson@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1411470497-10209-1-git-send-email-bruce.richardson@intel.com> References: <1410948102-12740-1-git-send-email-bruce.richardson@intel.com> <1411470497-10209-1-git-send-email-bruce.richardson@intel.com> Subject: [dpdk-dev] [PATCH v2 3/5] testpmd: Change rxfreet default to 32 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" To improve performance by using bulk alloc or vectored RX routines, we need to set rx free threshold (rxfreet) value to 32, so make this the testpmd default. Thirty-two is the minimum setting needed to enable either the bulk alloc or vector RX routines inside the ixgbe driver, so it's best made the default for that reason. Please see "check_rx_burst_bulk_alloc_preconditions()" in ixgbe_rxtx.c, and RX function assignment logic in "ixgbe_dev_rx_queue_setup()" in the same file. The difference in IO performance for testpmd when called without any optional parameters, and using 10G NICs using the ixgbe driver, can be significant - approx 25% or more. Updates in V2: * Updated commit message with additional details Signed-off-by: Bruce Richardson --- app/test-pmd/testpmd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 9f6cdc4..f76406f 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -225,7 +225,9 @@ struct rte_eth_thresh tx_thresh = { /* * Configurable value of RX free threshold. */ -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by default. */ +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32 packets, + This setting is needed for ixgbe to enable bulk alloc or vector + receive functionality. */ /* * Configurable value of RX drop enable.