From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 79B95A0555 for ; Thu, 9 Jun 2022 13:38:40 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 73F5B4281B; Thu, 9 Jun 2022 13:38:40 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 03A5B40220 for ; Thu, 9 Jun 2022 13:38:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1654774717; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0oAMYtdtOwF0yFYZVLYYTN8OT5MLoN5oIRduwLtLIxo=; b=bJ/b+dzT11ppy7M/mOmXPdQItwOIpojcniKZ3Wp+uHp0DlsOglQuTIyNP8IP8h9cgkCk59 LUHaNf7BegtAjsc+4DEXtG1mkc0bU0tlKX+VCVce9j2BdDdIYQIEhpNmW2GMypcVrdKE7I cGOzlxRISH/XdvffuJgWkymCEr07kfw= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-625-Q_eOtbUUO_qnw_QE24QVOw-1; Thu, 09 Jun 2022 07:38:36 -0400 X-MC-Unique: Q_eOtbUUO_qnw_QE24QVOw-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 41DCA800882; Thu, 9 Jun 2022 11:38:36 +0000 (UTC) Received: from rh.redhat.com (unknown [10.39.195.82]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4AC0518EA3; Thu, 9 Jun 2022 11:38:35 +0000 (UTC) From: Kevin Traynor To: Ke Zhang Cc: Qi Zhang , dpdk stable Subject: patch 'net/iavf: fix Rx queue interrupt setting' has been queued to stable release 21.11.2 Date: Thu, 9 Jun 2022 12:36:50 +0100 Message-Id: <20220609113701.386938-63-ktraynor@redhat.com> In-Reply-To: <20220609113701.386938-1-ktraynor@redhat.com> References: <20220609113701.386938-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=ktraynor@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 21.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/13/22. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/088e0839f16b3eb033f3618aa9785ee2d971ddbe Thanks. Kevin --- >From 088e0839f16b3eb033f3618aa9785ee2d971ddbe Mon Sep 17 00:00:00 2001 From: Ke Zhang Date: Fri, 20 May 2022 03:00:23 +0000 Subject: [PATCH] net/iavf: fix Rx queue interrupt setting [ upstream commit a08f9cb698c3d4687765860e328dca727f7a516b ] For Rx-Queue Interrupt Setting, when VF Rx interrupt disable (INTENA=0), there are two ways to write back descriptor to host memory: 1) Set WB_ON_ITR bit 0 to Interrupt Dynamic Control Register: Completed descriptors are posted to host memory according to the internal descriptor cache policy (in other words when a full cache line is available for write-back). A internal descriptor size is 16 bytes or 32 bytes, a cache line size is 64 bytes or 128 bytes from datasheet : PCIe Global Config 2 - GLPCI_CNF2 (0x000BE004; RO) so the full cache line could contains 4 packets, it means Network card will send 4 packets to host when a full cache line is available. 2) Set WB_ON_ITR bit 1 to Interrupt Dynamic Control Register: Completed descriptors also trigger the ITR. Following ITR expiration, all leftover completed descriptors are posted to host memory. Network card will send packet to host even if only one descriptor is completed. Changing 1) to 2) to make sure VF send the packet to host even if there is only one Rx packet is ready in hardware. Fixes: d6bde6b5eae9 ("net/avf: enable Rx interrupt") Signed-off-by: Ke Zhang Acked-by: Qi Zhang --- drivers/net/iavf/iavf_ethdev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c index 69472869e3..7e7042bd07 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -1844,5 +1844,5 @@ iavf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id) IAVF_WRITE_REG(hw, IAVF_VFINT_DYN_CTLN1(msix_intr - IAVF_RX_VEC_START), - 0); + IAVF_VFINT_DYN_CTLN1_WB_ON_ITR_MASK); IAVF_WRITE_FLUSH(hw); -- 2.34.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-06-09 12:34:31.213886289 +0100 +++ 0063-net-iavf-fix-Rx-queue-interrupt-setting.patch 2022-06-09 12:34:29.803980739 +0100 @@ -1 +1 @@ -From a08f9cb698c3d4687765860e328dca727f7a516b Mon Sep 17 00:00:00 2001 +From 088e0839f16b3eb033f3618aa9785ee2d971ddbe Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit a08f9cb698c3d4687765860e328dca727f7a516b ] + @@ -34 +35,0 @@ -Cc: stable@dpdk.org @@ -43 +44 @@ -index 315ab15aad..a74056f0f1 100644 +index 69472869e3..7e7042bd07 100644 @@ -46 +47 @@ -@@ -1926,5 +1926,5 @@ iavf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id) +@@ -1844,5 +1844,5 @@ iavf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)