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 E78DEA0350 for ; Mon, 21 Feb 2022 16:39:23 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E2D744013F; Mon, 21 Feb 2022 16:39:23 +0100 (CET) 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 E281E41147 for ; Mon, 21 Feb 2022 16:39:22 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1645457962; 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=1Rsbhd4kgt9lJMe7fn3923MT5/W7ZKMPetO+w6rsbCs=; b=IqNghb7QCRC9Pbh0V0Yhfy+JqtghyBJL3TU+kqMRL4FfgVjGxReoEJtDZ5sE+FZEgCudTd m25tEnCqtLFwe/sbYQZfYCzTAvV+Yl64j/5Mh612DWsCDc1HzZXrRxtywUoZ3M2VsaDduf 6o/U87OvDogo3/AvRuI9aNr3SRCebCw= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-531-wQWsste-OEqoNAPqYUquYA-1; Mon, 21 Feb 2022 10:39:19 -0500 X-MC-Unique: wQWsste-OEqoNAPqYUquYA-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 3AB49100C660; Mon, 21 Feb 2022 15:39:18 +0000 (UTC) Received: from rh.Home (unknown [10.39.195.12]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2FDB678DDE; Mon, 21 Feb 2022 15:39:16 +0000 (UTC) From: Kevin Traynor To: Harman Kalra Cc: Jerin Jacob , dpdk stable Subject: patch 'common/cnxk: always use single interrupt ID with NIX' has been queued to stable release 21.11.1 Date: Mon, 21 Feb 2022 15:34:34 +0000 Message-Id: <20220221153625.152324-85-ktraynor@redhat.com> In-Reply-To: <20220221153625.152324-1-ktraynor@redhat.com> References: <20220221153625.152324-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 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-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.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 02/26/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/1349f9e56866ed4fff50b54167a6208d1210c5c6 Thanks. Kevin --- >From 1349f9e56866ed4fff50b54167a6208d1210c5c6 Mon Sep 17 00:00:00 2001 From: Harman Kalra Date: Fri, 21 Jan 2022 17:34:19 +0530 Subject: [PATCH] common/cnxk: always use single interrupt ID with NIX [ upstream commit 89d3557c8de36a40266ddfbfbaa73adcda97c8f4 ] An errata exists whereby, in certain cases NIX may use an incorrect QINT_IDX for SQ interrupts. As a result, the interrupt may not be delivered to software, or may not be associated with the correct SQ. When NIX uses an incorrect QINT_IDX : 1. NIX_LF_QINT(0..63)_CNT[COUNT] will be incremented for incorrect QINT. 2. NIX_LF_QINT(0..63)_INT[INTR] will be set for incorrect QINT. Fixes: ae06070901ab ("common/cnxk: add NIX Tx queue management API") Signed-off-by: Harman Kalra Acked-by: Jerin Jacob --- drivers/common/cnxk/roc_nix_queue.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/common/cnxk/roc_nix_queue.c b/drivers/common/cnxk/roc_nix_queue.c index d5f6813e69..e631e10e04 100644 --- a/drivers/common/cnxk/roc_nix_queue.c +++ b/drivers/common/cnxk/roc_nix_queue.c @@ -696,5 +696,9 @@ sq_cn9k_init(struct nix *nix, struct roc_nix_sq *sq, uint32_t rr_quantum, /* Many to one reduction */ - aq->sq.qint_idx = sq->qid % nix->qints; + /* Assigning QINT 0 to all the SQs, an errata exists where NIXTX can + * send incorrect QINT_IDX when reporting queue interrupt (QINT). This + * might result in software missing the interrupt. + */ + aq->sq.qint_idx = 0; } @@ -795,6 +799,9 @@ sq_init(struct nix *nix, struct roc_nix_sq *sq, uint32_t rr_quantum, aq->sq.sq_int_ena |= BIT(NIX_SQINT_MNQ_ERR); - /* Many to one reduction */ - aq->sq.qint_idx = sq->qid % nix->qints; + /* Assigning QINT 0 to all the SQs, an errata exists where NIXTX can + * send incorrect QINT_IDX when reporting queue interrupt (QINT). This + * might result in software missing the interrupt. + */ + aq->sq.qint_idx = 0; } -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-02-21 15:22:46.474441547 +0000 +++ 0085-common-cnxk-always-use-single-interrupt-ID-with-NIX.patch 2022-02-21 15:22:44.174704312 +0000 @@ -1 +1 @@ -From 89d3557c8de36a40266ddfbfbaa73adcda97c8f4 Mon Sep 17 00:00:00 2001 +From 1349f9e56866ed4fff50b54167a6208d1210c5c6 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 89d3557c8de36a40266ddfbfbaa73adcda97c8f4 ] + @@ -17 +18,0 @@ -Cc: stable@dpdk.org @@ -26 +27 @@ -index ab578496d1..e8b42ed6be 100644 +index d5f6813e69..e631e10e04 100644 @@ -29 +30 @@ -@@ -706,5 +706,9 @@ sq_cn9k_init(struct nix *nix, struct roc_nix_sq *sq, uint32_t rr_quantum, +@@ -696,5 +696,9 @@ sq_cn9k_init(struct nix *nix, struct roc_nix_sq *sq, uint32_t rr_quantum, @@ -40 +41 @@ -@@ -805,6 +809,9 @@ sq_init(struct nix *nix, struct roc_nix_sq *sq, uint32_t rr_quantum, +@@ -795,6 +799,9 @@ sq_init(struct nix *nix, struct roc_nix_sq *sq, uint32_t rr_quantum,