From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi0-f65.google.com (mail-oi0-f65.google.com [209.85.218.65]) by dpdk.org (Postfix) with ESMTP id 180617288 for ; Thu, 11 Jan 2018 16:35:36 +0100 (CET) Received: by mail-oi0-f65.google.com with SMTP id 184so1881485oii.2 for ; Thu, 11 Jan 2018 07:35:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Gzx3ZVy525cifgfWMhUZf3FTw5S8b+CeY2DBfKRfRNU=; b=jXuSFW2UJkIcqfRXd9fOGmiwfzdKgUmwfyZl9qwa/QgbJS52hBIZn4gXl4e/1E4JwV i/2/P66d9mTj0Zgjwgh7PCHxSgE3fbWRgUTg4qvuX42EGOur3kPdU58piUI7XbTfbXUD Xr1r0kjO94AeDExZNjiDWRYB7AVeGzNW7YunUQX40RS0ZvQP/yPe4jcJ1Kpg06gd5NVf L1u3h4jtF8LQVRWbU1+ysF1gTw5DspZjU77HWGbGuY1gS1fQUrezpz13Dcv5ECmcIqFt ouQ2xSg0CNOnjTneMaEJ25ekC7VwacWzGgybpun73rFFBg4c9OSyD3u6JvV6AFyQZxAn dUeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Gzx3ZVy525cifgfWMhUZf3FTw5S8b+CeY2DBfKRfRNU=; b=ojSeKS8EdQ1dwNHhEBzVkUHnZRmwzNHSbMAAmJTb5jnM7n4Vc5+4YjELq44uEGmgcC fphaKILc9Bqe6MZy+tjzVgaLLyYIMPEAUdFTF0MZ6jiSrGTzm+9Jkn+s68uFC2BQo4V4 bfj9jY7b1fUyhKrmta9LMHnl6xS8avngM1sSRYwIcDQGOETQySzOYhReTDU+qD4tvpkA XgbkJjlUbZxKvFlJO5jz/lT62we5gKMnrHNuWki9F6IRWQZFjYprlp7oKg9x7k2u6L/4 ECGML6xy+OXAopImk0kFBKesReG9cpZZsZMe8lEgdT/Ol2bAlR+xZ+lFH6pnR2SRLxCI JDjQ== X-Gm-Message-State: AKwxyte54Q68Kx7hSXS0PoCAI3+b3o0kJtUeb5YDJuPDbJDWLiBzi0i5 fIi2nqe4sHpwhXNMBllKTpSFppSX1etLQNUXvr4= X-Google-Smtp-Source: ACJfBou+xofwLMVg280toMsODR7T7788xkPKXb+suMuJiukwXDN7a+bnPW0tTiPZPb884IwgawtaKEMBpKyQ9DkjHEw= X-Received: by 10.202.212.199 with SMTP id l190mr6345953oig.263.1515684935433; Thu, 11 Jan 2018 07:35:35 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.151.65 with HTTP; Thu, 11 Jan 2018 07:35:34 -0800 (PST) In-Reply-To: <94479800C636CB44BD422CB454846E013208AC68@SHSMSX101.ccr.corp.intel.com> References: <1515161439-4792-1-git-send-email-xiangxia.m.yue@gmail.com> <1515161439-4792-4-git-send-email-xiangxia.m.yue@gmail.com> <94479800C636CB44BD422CB454846E013208AC68@SHSMSX101.ccr.corp.intel.com> From: Tonghao Zhang Date: Thu, 11 Jan 2018 23:35:34 +0800 Message-ID: To: "Xing, Beilei" Cc: "dev@dpdk.org" Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH 4/5] net/ixgbevf: add check for rte_intr_enable. 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: , X-List-Received-Date: Thu, 11 Jan 2018 15:35:36 -0000 On Thu, Jan 11, 2018 at 3:06 PM, Xing, Beilei wrote: > > >> -----Original Message----- >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Tonghao Zhang >> Sent: Friday, January 5, 2018 10:11 PM >> To: dev@dpdk.org >> Cc: Tonghao Zhang >> Subject: [dpdk-dev] [PATCH 4/5] net/ixgbevf: add check for rte_intr_enable. > > The patch is not only for ixgbevf, but also for ixgbe, right? > so how about changing the title with net/ixgbe started? > OK >> When we bind the ixgbevf to vfio and call the rte_eth_dev_rx_intr_enable >> and rte_eth_dev_rx_intr_disable frequently, the interrupt setting >> (msi_set_mask_bit) will take more CPU as show below. rte_intr_enable call >> the ioctl to map the fd to interrupts frequently. >> >> perf top: >> 5.45% [kernel] [k] msi_set_mask_bit >> >> It is unnecessary to call the rte_intr_enable in >> ixgbe_dev_rx_queue_intr_enable. because the fds has been mapped to >> interrupt and not unmapped in ixgbe_dev_rx_queue_intr_disable. >> >> This patch add checks for using VFIO. With the patch, msi_set_mask_bit is >> not listed in perl any more. Any suggestion will be welcome. >> >> Signed-off-by: Tonghao Zhang >> --- >> drivers/net/ixgbe/ixgbe_ethdev.c | 9 +++++++-- >> 1 file changed, 7 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c >> b/drivers/net/ixgbe/ixgbe_ethdev.c >> index e929235..79e4097 100644 >> --- a/drivers/net/ixgbe/ixgbe_ethdev.c >> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c >> @@ -5610,7 +5610,9 @@ static void ixgbevf_set_vfta_all(struct rte_eth_dev >> *dev, bool on) >> RTE_SET_USED(queue_id); >> IXGBE_WRITE_REG(hw, IXGBE_VTEIMS, intr->mask); >> >> - rte_intr_enable(intr_handle); >> + if (intr_handle->type == RTE_INTR_HANDLE_UIO || >> + intr_handle->type == RTE_INTR_HANDLE_UIO_INTX) >> + rte_intr_enable(intr_handle); > > For igb_uio, did you check if it's necessary to call rte_intr_enable every time? Since rte interrupt is not disabled during ixgbevf_dev_rx_queue_intr_disable. good, remove the rte_intr_enable directly, because intr has been disable/enable via writing the register in ixgbevf_dev_rx_queue_intr_disable/enable. >> >> return 0; >> } >> @@ -5659,7 +5661,10 @@ static void ixgbevf_set_vfta_all(struct >> rte_eth_dev *dev, bool on) >> mask &= (1 << (queue_id - 32)); >> IXGBE_WRITE_REG(hw, IXGBE_EIMS_EX(1), mask); >> } >> - rte_intr_enable(intr_handle); >> + >> + if (intr_handle->type == RTE_INTR_HANDLE_UIO || >> + intr_handle->type == RTE_INTR_HANDLE_UIO_INTX) >> + rte_intr_enable(intr_handle); > > The same comment as above. > >> >> return 0; >> } >> -- >> 1.8.3.1 >