From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) by dpdk.org (Postfix) with ESMTP id 0D3B623A for ; Tue, 21 Nov 2017 14:20:00 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 8996120B53; Tue, 21 Nov 2017 08:20:00 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute1.internal (MEProxy); Tue, 21 Nov 2017 08:20:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux.org; h=cc:date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=qU7Nq6Tkodo6dq+YU awJYguG4ZJ8P43WOE1faPnMcIk=; b=FaB5STRTJwt/jtDkjEoZ4IROykCqYR7rN cfJ2sLKSZ4W/8BK2prULazGtIHDRv342cQHqRNQzoQXBcJE9jkJWwWS+tkkI5dx4 foup9rlQR3jy8Z93d90w9/HNdJg9MMqzHeiwRzMxTLbIE/K8z0Rm+Fp0zjtzdWLl fyZiwzQd1nfKUbMSQpwJz0VGLBW++mP8S8iSAUJALadq8xvpGW0Bn1JcSfsg6Y0R RuNvWknzlQpXhf3Mn3XiIWWt68lsrc6ndR83HqjPDvCiNX1tgTVtYGTNkwL1RuAV KZUbOVEAaQV17Zet7fEho6K1shqES30u6ZWrymNSsfepKkzoNtOnQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=qU7Nq6Tkodo6dq+YUawJYguG4ZJ8P43WOE1faPnMcIk=; b=XHqSMwOu T8CxhNO1UCZiLDVJW75RjO1lx5UCBpCFyuXBet4I0i9oGJPKjTe6xVOgxneZD4Ml /Hus6J90Rr5o/7uq3LZezkqWlLJOGS85U17awktLrjYMxmyW67xMpG3SznNZfcU/ Nyr1UCKJ/H5F6RotftoPdkviQb4P7PwgUeXsDmPbZnP5glKVyZLFRwg+MXCfPczV zrOVkYBNNxT6Qt8KI9VA1RQb5vOsrBxgRU1cQf5EhjllVVi9mbvFdRU9KZI03cXb bJNPT0QqbEpc2K7XSRV0P9Gus7DEFABNrUp9HZVxdsQfUXL3pjzVrXHbiWyW51Gd uEGBYUuol+wpNg== X-ME-Sender: Received: from localhost.localdomain (unknown [180.158.62.0]) by mail.messagingengine.com (Postfix) with ESMTPA id 89890247A9; Tue, 21 Nov 2017 08:19:58 -0500 (EST) From: Yuanhan Liu To: Alejandro Lucero Cc: dpdk stable Date: Tue, 21 Nov 2017 21:15:53 +0800 Message-Id: <1511270333-31002-11-git-send-email-yliu@fridaylinux.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1511270333-31002-1-git-send-email-yliu@fridaylinux.org> References: <1511270333-31002-1-git-send-email-yliu@fridaylinux.org> Subject: [dpdk-stable] patch 'net/nfp: fix Rx interrupt when multiqueue' has been queued to stable release 17.08.1 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Nov 2017 13:20:01 -0000 Hi, FYI, your patch has been queued to stable release 17.08.1 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/24/17. So please shout if anyone has objections. Thanks. --yliu --- >>From 11927579d659351c9a88b1141342ba2892353ccf Mon Sep 17 00:00:00 2001 From: Alejandro Lucero Date: Fri, 11 Aug 2017 16:16:55 +0100 Subject: [PATCH] net/nfp: fix Rx interrupt when multiqueue [ upstream commit 7dcb19d78f27ec6f6241ebc7779d5c61a9d569e1 ] intr_vec was not properly configured. This is not a problem when just one queue is supported but it fails with multiqueue. Some minor refactoring also done for hardware interrupt configuration. Fixes: ea121b28316d ("net/nfp: add Rx interrupts") Signed-off-by: Alejandro Lucero --- drivers/net/nfp/nfp_net.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index 3f4b573..3c063c2 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -627,14 +627,19 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev, PMD_INIT_LOG(INFO, "VF: enabling RX interrupt with UIO"); /* UIO just supports one queue and no LSC*/ nn_cfg_writeb(hw, NFP_NET_CFG_RXR_VEC(0), 0); + intr_handle->intr_vec[0] = 0; } else { PMD_INIT_LOG(INFO, "VF: enabling RX interrupt with VFIO"); - for (i = 0; i < dev->data->nb_rx_queues; i++) + for (i = 0; i < dev->data->nb_rx_queues; i++) { /* * The first msix vector is reserved for non * efd interrupts */ nn_cfg_writeb(hw, NFP_NET_CFG_RXR_VEC(i), i + 1); + intr_handle->intr_vec[i] = i + 1; + PMD_INIT_LOG(DEBUG, "intr_vec[%d]= %d\n", i, + intr_handle->intr_vec[i]); + } } /* Avoiding TX interrupts */ @@ -684,20 +689,17 @@ nfp_net_start(struct rte_eth_dev *dev) intr_vector = dev->data->nb_rx_queues; if (rte_intr_efd_enable(intr_handle, intr_vector)) return -1; - } - if (rte_intr_dp_is_en(intr_handle)) nfp_configure_rx_interrupt(dev, intr_handle); + update = NFP_NET_CFG_UPDATE_MSIX; + } rte_intr_enable(intr_handle); /* Enable device */ new_ctrl = hw->ctrl | NFP_NET_CFG_CTRL_ENABLE; - update = NFP_NET_CFG_UPDATE_GEN | NFP_NET_CFG_UPDATE_RING; - /* Just configuring queues interrupts when necessary */ - if (rte_intr_dp_is_en(intr_handle)) - update |= NFP_NET_CFG_UPDATE_MSIX; + update |= NFP_NET_CFG_UPDATE_GEN | NFP_NET_CFG_UPDATE_RING; if (hw->cap & NFP_NET_CFG_CTRL_RINGCFG) new_ctrl |= NFP_NET_CFG_CTRL_RINGCFG; -- 2.7.4