From patchwork Thu Mar 22 13:01:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tonghao Zhang X-Patchwork-Id: 36429 X-Patchwork-Delegate: helin.zhang@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5E4A95F28; Thu, 22 Mar 2018 14:02:15 +0100 (CET) Received: from mail-pg0-f67.google.com (mail-pg0-f67.google.com [74.125.83.67]) by dpdk.org (Postfix) with ESMTP id 860785F25 for ; Thu, 22 Mar 2018 14:02:14 +0100 (CET) Received: by mail-pg0-f67.google.com with SMTP id g12so3215857pgs.0 for ; Thu, 22 Mar 2018 06:02:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=EGFwqI6n2DbxQeHlmjRTs+uLA98NNZKBcZgzbP/Z1+g=; b=D2nuTJ/wFFiHitzW0yTEJkzPZ56OMkpvG2KMM6kMb/Ia9gudWNHZn5Thaby812ZegV v75zD0NRmXazWQZPHHiZRkCh/cBnq30dqjmtjksr1sDlTieXiXMrepewm7EoN8WoD8b8 2TM8DO/YHK+cbTYj7C7ua7ChF34C1bVXESjtUDhOL1VxYVduy+R7S0XP81OCFf3cY5H0 2dj9IyVwnD164tEDuvEKJX7i3SUMBuUZyupEOFNNZ4avLM6z1iqCPN5JJY8oHdsyoWC3 UepCNoQorV8qn9U84eLCFBfJ608kkeoOOfWMQAoc1hQCfWkLaHGF0/0i2/7LIhaKJHhi bSgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=EGFwqI6n2DbxQeHlmjRTs+uLA98NNZKBcZgzbP/Z1+g=; b=jKO+6i2y/r1I2ZaJRVbhYZBVuGlaV37eUhWajU3Q1ziNRtfX+EYRCy9+6p+lbA6AXt /04K23pq1oJdMzE/CBV+VRCMpHJcVDbyGJ5LBNuNz+8bb4m1LxvdKAkDCEcLE09INjRY PntkSpB2aKq2TRBwRcARbnIisOLkKSe8IguxWs47XhqiXs2ojFBI3zfwHEx0uqE9phhX Seaf+7xk4V673ii3ENyILQt6WFJeSjsvKT4z1okABSRunwdgWoTl09ABxpIOARpSJcaK 1tuLvdTHOiFSqiJXVn5px0COhY7nUB3baDLn07WWaUWwXKGCENw5QTQC08X7WkYlkIZ9 CwRw== X-Gm-Message-State: AElRT7FzpteI1obixorTlNvqys3n2vC8TRnERG6c9dsN9LdqHOWXTXKS v2oaLC2En9mJA6kD+S4k8EE= X-Google-Smtp-Source: AG47ELvmIHWPO+SOk60WcvgyAybRiRLA6+A4FPpqiIzDSC/xb1qzg6bFrrwTYZEiCMxL5b5bJR/d2A== X-Received: by 10.99.119.74 with SMTP id s71mr17830727pgc.321.1521723730425; Thu, 22 Mar 2018 06:02:10 -0700 (PDT) Received: from local.opencloud.tech.localdomain ([13.94.31.177]) by smtp.gmail.com with ESMTPSA id w24sm13450763pfl.14.2018.03.22.06.02.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Mar 2018 06:02:09 -0700 (PDT) From: xiangxia.m.yue@gmail.com To: wenzhuo.lu@intel.com, konstantin.ananyev@intel.com, beilei.xing@intel.com, wei.dai@intel.com Cc: dev@dpdk.org, Tonghao Zhang Date: Thu, 22 Mar 2018 06:01:54 -0700 Message-Id: <1521723718-93761-2-git-send-email-xiangxia.m.yue@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1521723718-93761-1-git-send-email-xiangxia.m.yue@gmail.com> References: <1521723718-93761-1-git-send-email-xiangxia.m.yue@gmail.com> Subject: [dpdk-dev] [PATCH v3 1/5] net/ixgbevf: set the inter-interrupt interval for EITR. 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" From: Tonghao Zhang Set EITR interval as default. This patch can improve the performance when we enable the rx-intrrupt to process the packets because we hope rx-intrrupt reduce CPU. For example, the 200us value of EITR makes the performance better with the low CPU. Users can configure the value of ITR via DPDK configuration. The default value of ITR is 500us, compatible with RSC of ixgbe PF, and next patch will use the default value. Signed-off-by: Tonghao Zhang --- v1 --> v2: use the configure file, for different user. suggested by Beilei Xing, http://dpdk.org/dev/patchwork/patch/32989 --- config/common_base | 2 ++ drivers/net/ixgbe/ixgbe_ethdev.c | 7 +++++++ drivers/net/ixgbe/ixgbe_ethdev.h | 12 ++++++++++++ 3 files changed, 21 insertions(+) diff --git a/config/common_base b/config/common_base index e74febe..2e9fded 100644 --- a/config/common_base +++ b/config/common_base @@ -196,6 +196,8 @@ CONFIG_RTE_LIBRTE_IXGBE_DEBUG_DRIVER=n CONFIG_RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC=n CONFIG_RTE_IXGBE_INC_VECTOR=y CONFIG_RTE_LIBRTE_IXGBE_BYPASS=n +# interval up to 1024 us +CONFIG_RTE_LIBRTE_IXGBE_ITR_INTERVAL=-1 # # Compile burst-oriented I40E PMD driver diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index e67389f..495e72c 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -5780,6 +5780,13 @@ static void ixgbevf_set_vfta_all(struct rte_eth_dev *dev, bool on) if (vector_idx < base + intr_handle->nb_efd - 1) vector_idx++; } + + /* As RX queue setting above show, all queues use the vector 0. + * Set only the ITR value of IXGBE_MISC_VEC_ID. + */ + IXGBE_WRITE_REG(hw, IXGBE_VTEITR(IXGBE_MISC_VEC_ID), + ixgbe_calc_itr_interval(RTE_LIBRTE_IXGBE_ITR_INTERVAL) + | IXGBE_EITR_CNT_WDIS); } /** diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h index 1db29bd..c779001 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.h +++ b/drivers/net/ixgbe/ixgbe_ethdev.h @@ -58,6 +58,18 @@ IXGBE_EITR_ITR_INT_MASK) +#define IXGBE_QUEUE_ITR_INTERVAL_MAX 1024 /* 1024us */ +#define IXGBE_QUEUE_ITR_INTERVAL_DEFAULT 500 /* 500us */ + +static inline uint16_t +ixgbe_calc_itr_interval(int16_t interval) +{ + if (interval < 0 || interval > IXGBE_QUEUE_ITR_INTERVAL_MAX) + interval = IXGBE_QUEUE_ITR_INTERVAL_DEFAULT; + + return IXGBE_EITR_INTERVAL_US(interval); +} + /* Loopback operation modes */ /* 82599 specific loopback operation types */ #define IXGBE_LPBK_82599_NONE 0x0 /* Default value. Loopback is disabled. */