From patchwork Sun Jan 14 10:03:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tonghao Zhang X-Patchwork-Id: 33699 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 B5D6A727F; Sun, 14 Jan 2018 11:05:01 +0100 (CET) Received: from mail-pl0-f67.google.com (mail-pl0-f67.google.com [209.85.160.67]) by dpdk.org (Postfix) with ESMTP id 068C9354D for ; Sun, 14 Jan 2018 11:05:00 +0100 (CET) Received: by mail-pl0-f67.google.com with SMTP id 62so1743568pld.7 for ; Sun, 14 Jan 2018 02:05:00 -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=QKXmqiNkvlCkmwhbs9O0kfFWcFQKOa2S+9M/idxoNV0=; b=P/bfb2hlnIfAcAV/abk0zs2uOY13CMD6PQbd2FFqs4GarP2T0LZzz4Gx6MeT9Kd16o ekru645eFuvOqVzWqg7SuC18+mC6AOYfosvD/MKKMfIZudG4PLH0XKYCtzfXewGqDUu+ XtmPTv+kyajwsXoMG0UwhKKkGeWaXX3oq8Io9810z1yPo5sMDvxZ1BWWKH76P8IKLGcM xrGWhQsS86Mtdda24+NRFsNpcEo7WOl5WMekGPTTMYTe4QVDOFjSdr0r5G4C7ipSQsHT XJf0E5Oce229iWpv0CoykcJiM+t9cqAXVvtMwdGqzl3XFTL79C2WnkUZEHTBa81r8Je1 Hvyw== 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=QKXmqiNkvlCkmwhbs9O0kfFWcFQKOa2S+9M/idxoNV0=; b=uIzcDVqE26rbXFNMPQvinjlaE9YLFI57cF+1Jyhl9K5+ah6wYA32EKhAMlvN3gVW6l lAB8nimXG/tYcnza83S951W//V21n7oDSi8zfZpSo8rf8O96HDbsKP8eJHyWRkww0klB gUN/n5EuvlJ1yJEVnuEa+6MB4xBrxEPvuqQ2aP58Ya4FcvZ7WnyWz8eb6N8vBo2ZywGN 8Ku1SwnSpbHk5vxkB0xnBUqLkN2RO+DS/KLkBnDFJhcrnJhNQW17UUVUegl/q6ntJYFs wSzp/CBF8F4u1QBscb/SuDg/hl2E1ClTFL34VcKixy2lqAmubkzCl7ow8M7NP1kOale4 slCQ== X-Gm-Message-State: AKwxytdsgzNclG7aIUK1/FFa7Em+BZiPnJ48V1+7ryabYWwPS/9L+wvi mcZ35RHtIZyj3zKxXwhcLVQ= X-Google-Smtp-Source: ACJfBov3v1raPaqsyYgoIfnz2s/hHwrVwV5xHNoj19nRYLxDdL9g5/7VXSEkLeTV0KBXfYuFEOtsKA== X-Received: by 10.84.129.195 with SMTP id b61mr17532733plb.383.1515924300252; Sun, 14 Jan 2018 02:05:00 -0800 (PST) Received: from local.opencloud.tech.localdomain ([183.240.196.59]) by smtp.gmail.com with ESMTPSA id v7sm15208761pgs.83.2018.01.14.02.04.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 14 Jan 2018 02:04:59 -0800 (PST) From: xiangxia.m.yue@gmail.com To: wei.dai@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, Tonghao Zhang Date: Sun, 14 Jan 2018 02:03:38 -0800 Message-Id: <1515924222-19044-2-git-send-email-xiangxia.m.yue@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1515924222-19044-1-git-send-email-xiangxia.m.yue@gmail.com> References: <1515924222-19044-1-git-send-email-xiangxia.m.yue@gmail.com> Subject: [dpdk-dev] [PATCH v3 2/6] 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 --- 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 0e056a2..6695ce8 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -5809,6 +5809,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 51ddcfd..e5aa40d 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.h +++ b/drivers/net/ixgbe/ixgbe_ethdev.h @@ -87,6 +87,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. */