From patchwork Mon Feb 5 00:51:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tonghao Zhang X-Patchwork-Id: 34929 X-Patchwork-Delegate: maxime.coquelin@redhat.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 8088E1B1D4; Mon, 5 Feb 2018 01:51:52 +0100 (CET) Received: from mail-pl0-f68.google.com (mail-pl0-f68.google.com [209.85.160.68]) by dpdk.org (Postfix) with ESMTP id A52821B1C1 for ; Mon, 5 Feb 2018 01:51:50 +0100 (CET) Received: by mail-pl0-f68.google.com with SMTP id 36so10672136ple.13 for ; Sun, 04 Feb 2018 16:51:50 -0800 (PST) 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=crrfd2cqrXmPhX12GIs5gUHZyAeuWF9Qfaaj6Lv80bKmp0fBbptpOCBfhpmFChsLKX GU+u0LenV8Wtmhgra3micBLlpOlNaa1flKqMg0eYhV/SU5qF9CpTm2Ukct9N0KRVTBzq BP0+ZDKhjc8S/BPszUbwL3Sb2Cr5RibtAmgLX6+byY8VuhJ4IivsnnsJwT4RGk4rZ1FQ 1f78i0xRtyDgUO2clc3ypMP17nPSKk6J8PbptLYVtt5KBbkaZQAcQjGHCQ0nkGqEvx6s yvQwwa2J0kpLDgEvlNJCJ8G97/cFTQTxXQGsggQrt8JkW18bkjTlKrIRIC3Q1tzby8zp MrfQ== 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=AWjUAvAiMJOcd1f3tgwjygVT12l91srwHqjbfi46ldc+LZ3yIeZmi+FftzM9NV7h1d B1/fbJgcqdjXa3ofVBTBy00mmju2Cov2fwXBJF6ZBbUKOprQ0TWJqHZn2w8rw4JISLGX 0oU/sePj1nGOMHIQEmIGfAJ1TJ+VmcnA65NFiWhRzVFamINqNyyxQHQCZh6J/omZbWgZ RM2KuJfI35wgYSrpcD/Oy4NLgeK2LkUtX3jK73JWlLsGfwXvF9alWj4mB1XAlGsT1otg d4mu+TgOZOBF2YeFUjJdHZMToVWf2k9WFY3+eRZcYSqKGld41iH4OlMER9DGbctqNqWQ j9Cw== X-Gm-Message-State: AKwxytccgxI2iDWRj4CmJQ7Zuas/17Ja7T4gna6TzDtsypylSVAxhsH6 yVqWP49y58LmbaRlUEtb8VsFRur+ X-Google-Smtp-Source: AH8x225ZMKX+AuwTu6kpp+pWqZ0ESWDqmcK5YA+d2dj8nZ2KmMx9qRF0AucM6ISGa/LDG2KPrcmJhA== X-Received: by 2002:a17:902:59c9:: with SMTP id d9-v6mr11594149plj.146.1517791909871; Sun, 04 Feb 2018 16:51:49 -0800 (PST) Received: from local.opencloud.tech.localdomain ([23.102.225.250]) by smtp.gmail.com with ESMTPSA id b84sm9432835pfj.11.2018.02.04.16.51.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 04 Feb 2018 16:51:49 -0800 (PST) From: xiangxia.m.yue@gmail.com To: beilei.xing@intel.com, wei.dai@intel.com, helin.zhang@intel.com, wenzhuo.lu@intel.com Cc: dev@dpdk.org, Tonghao Zhang Date: Sun, 4 Feb 2018 16:51:31 -0800 Message-Id: <1517791895-3061-2-git-send-email-xiangxia.m.yue@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1517791895-3061-1-git-send-email-xiangxia.m.yue@gmail.com> References: <1517791895-3061-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. */