From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 5383B45A68;
	Mon, 30 Sep 2024 14:18:29 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 0E9DD40DD2;
	Mon, 30 Sep 2024 14:16:43 +0200 (CEST)
Received: from AS8PR04CU009.outbound.protection.outlook.com
 (mail-westeuropeazon11011060.outbound.protection.outlook.com [52.101.70.60])
 by mails.dpdk.org (Postfix) with ESMTP id D0753402BB
 for <dev@dpdk.org>; Mon, 30 Sep 2024 14:16:32 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=XKADn2UXSIsmVi6DX6pHiHDIdkFuXKS/xvFglet3AAxbCHLNEtdPdoHc5hyhpqhWkb8zB/CFz81+GADHwtcyk7CBThu7PBm23Bn0NRNWkjg69KtwGE5ZY7FBfeSZUYpKiADEP5jOvTlmYVLYzBjjXfAV5gRlVvUvk/TihoechFR42gIJ51mL4eefJ1vNZIWya+NGc3ZAMj85ufCDZxUZeYYUa0IpywUmpRn04cvXGxOx/5f+eruJBoT0XAnsZbDoDlf9GiigiC2q2vCyQoPzxD2X26gmSJf8E74A5nIdFUW4eFD4ThOyvkpA4qKxsUCkN1zM9woNp9qQN39PtxHsYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=nIHEYb+iVdZEmKXCeSRSt13eGad6ABBBk7tLqR5BCkU=;
 b=OVjTi1ltNgPGj5Nc572hPCpRuMH1TtwcE/iP2DweKhKSDqx4Kq8VtdzGDnkAX9vQTQOddeU3jrrbQMtm9QiojX4D1lVbK4LscoBoQR7kLD8uB4LtqVKANG85uwBYVPFlrBUAgUHpinlsPzH5B++gQkjoKOhSzWkilyfRIN2sKS94hae9pijGW7ma6oL7UnbHukGeV3KT71MGBKz+KEj5FigAxa72TFCezruT91QGxE+fKDjBaVi1br0UT5s1e6VlChr4L1bqtEEFJmaRBwDgpqeqU8ZE0EUnWl6X6DTcLMUx2XNFhrg5Ce3z0EWPExWNJIEXKuUjzFsrx0NjymW1mg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass
 header.d=nxp.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; 
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=nIHEYb+iVdZEmKXCeSRSt13eGad6ABBBk7tLqR5BCkU=;
 b=YKl+8aVm1/XGxlvk4JSLDQUF1qyct6qVc21MoiO8te5FrFxpn7aWp75mZDZiCa0PKiG/FDKe0WeHBV98dhrWxdtxVwltwjQXCoOJaDMqxxqyEPgV6jO6I6oWJIYv55MIuZkcHBdgzX0ZhDJBRz9mh3NO2jzsKTV1nsYhlSxEMNqc4t6AQ/NKSLWeuUFw2tgIPspDTdo4sLuM8yX/oi6njzLZE76V5ZJXYHOwYJrSEibYEmlE2dy3bzcCZ5eNap2a5pgIm5hGt99sqx4qA0e3GneLG7V7BFByt4ozS31aG/JyEfDfNl5mg11aTTDCw3FsSmIenngX92XHAJLsrVhw9g==
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=nxp.com;
Received: from PAXPR04MB9328.eurprd04.prod.outlook.com (2603:10a6:102:2b6::15)
 by GV1PR04MB10583.eurprd04.prod.outlook.com (2603:10a6:150:203::7)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8005.26; Mon, 30 Sep
 2024 12:16:31 +0000
Received: from PAXPR04MB9328.eurprd04.prod.outlook.com
 ([fe80::367:d59:375:fb87]) by PAXPR04MB9328.eurprd04.prod.outlook.com
 ([fe80::367:d59:375:fb87%3]) with mapi id 15.20.8005.026; Mon, 30 Sep 2024
 12:16:31 +0000
From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: dev@dpdk.org
Cc: ferruh.yigit@amd.com,
	Jun Yang <jun.yang@nxp.com>
Subject: [PATCH v4 17/18] net/dpaa: improve dpaa errata A010022 handling
Date: Mon, 30 Sep 2024 17:45:24 +0530
Message-Id: <20240930121525.3452847-18-hemant.agrawal@nxp.com>
X-Mailer: git-send-email 2.25.1
In-Reply-To: <20240930121525.3452847-1-hemant.agrawal@nxp.com>
References: <20240823073240.3708320-1-hemant.agrawal@nxp.com>
 <20240930121525.3452847-1-hemant.agrawal@nxp.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: SG2PR01CA0124.apcprd01.prod.exchangelabs.com
 (2603:1096:4:40::28) To PAXPR04MB9328.eurprd04.prod.outlook.com
 (2603:10a6:102:2b6::15)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: PAXPR04MB9328:EE_|GV1PR04MB10583:EE_
X-MS-Office365-Filtering-Correlation-Id: 1bb5770a-a786-422a-bc74-08dce149b7eb
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
 ARA:13230040|1800799024|366016|52116014|376014|38350700014; 
X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yoFEPESJi2DAGitnvI6l6cPY3sQ+RszmdxMOFn/6OC6QMk8xoFxier140HKb?=
 =?us-ascii?Q?FSi+tGc4/xdEvy9zKkj9Q7KyMYvsn5Z8nk+Qe7329c8q/Lsrr5Bq5FXWFcEk?=
 =?us-ascii?Q?PZm9m5w/C1QPV/9Afs08aAldgyJ1eV7AFpmAPsCj3QhV13mWckePINwJXVlG?=
 =?us-ascii?Q?FQiLdY7yJFZXwiW6/3tXOTaPVZqAwEXnY9MpKSJ1iEJrPpPm6Gllndil5utj?=
 =?us-ascii?Q?mHP8i/zuS9e2EDmr/peJ4OrPSvimSropKEJZaPi/eUyhObLoBT5dZPwjzoZU?=
 =?us-ascii?Q?KRW53JjjTN+PwPMA0IPcGd/zU1qDf+G/tDgdn5ssJi52rQBkMXIWFLmD/BCt?=
 =?us-ascii?Q?GYLiEII42zgGxf9e6XHXl8kiVMZwBR5JpCrD36DiEI9OIFTGjL0kpvKQcf6S?=
 =?us-ascii?Q?k3Q5Z9BV6lZmfcBLshATXwHCHJIr4m3c501hpf6Ih8nVa7KYzOUB5kvpjNg5?=
 =?us-ascii?Q?/gLxfzAbrr8RAdCvnoDH+1GLXU7OORT99jZravLVqCr5yL4W+EGD0fLHUf0o?=
 =?us-ascii?Q?xjvtlbWOSK2ys8SUjwJ4T7yYf271qm8hs8miuh7B7VILIGC8RoIkqrzg3+/H?=
 =?us-ascii?Q?q1qEGv6ZVp/uNNR+RPhUobT1duHner8UthFcazau3Z8xyKqxE3ERoeLiBRPE?=
 =?us-ascii?Q?DDQSKAGr1C3EDylEqzUkIx6JR3ThFrwlwZchmwWLDek4zjKLXzHNZ0eYPJ9c?=
 =?us-ascii?Q?+iMS1JHV7RKr6KcZ7WCLGlk6dSZO5v4qJ1YYDC7iRUwBAmQiUD/qob7gyjli?=
 =?us-ascii?Q?q8sYPEJTlYT0kdBzQ31T4Ue2Xw1MNxjmj9aZmaYSBXLkFuxp899tKcnCVrv6?=
 =?us-ascii?Q?dZjxCDi0Rbo2GZcwzXNBXsGzER6cf/GUcy3GDaAxYK2F29FTsuqNWtzNyxQO?=
 =?us-ascii?Q?/N+Iya0NushZsccQKfQqf+fvNMHsDT4ZPcjGos8XggTbgCLvHfvAV//CK1I6?=
 =?us-ascii?Q?nvBK5CkdYtesUCu9aFaXaZ/JXk5amHINUdkaJSU+hXqklNwAyi/8LU/Vsp8Z?=
 =?us-ascii?Q?J6skz0cg7x5Zw0PIXGKvhXXV4KIxoz3+Mhyet3L+MMVgXnk1V4wDB/rAYZow?=
 =?us-ascii?Q?SNA2RmyDYR4OrsObrVIoItnKjxzMb7toHuSKhpD2HcLW2WLkD3DXweC4kSPG?=
 =?us-ascii?Q?jbI+a+/xxSjApajSkSHZrmlb6yH4Dqx73rw29BNqAlYtRNQH4ZgGHW7BFfXV?=
 =?us-ascii?Q?qosa4I9oxlrb5EsrUzUHlltBaBrT+SiZWW1Qk9GpZFyunq0yVkt746lBDXMJ?=
 =?us-ascii?Q?9VXz6blU/d121MHY1aOjQWjpyZvv0R3gEc066iHyVeY0v3xsLkHm6so5kUVp?=
 =?us-ascii?Q?Nh5A1ItgSbmC/SsHGeNhss5aAcPk6It/AMo0Kvcexk+ruw=3D=3D?=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:PAXPR04MB9328.eurprd04.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230040)(1800799024)(366016)(52116014)(376014)(38350700014); DIR:OUT;
 SFP:1101; 
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JOK5EEKhl4Az69YvWMSExb8YuqY/c/fclrtroOLty1QV4Lqihp8XtTxbGDyB?=
 =?us-ascii?Q?gHVZi5wODGSFU5bcOzDzEpeTZwOq3xHK5c9nJKrHraAYqJg91wJidxes4IRR?=
 =?us-ascii?Q?LlUsqJPXtW734x6uIVPTE3NhHsPlDYo79OUU032O32rU8xOt//c7CVahIrrQ?=
 =?us-ascii?Q?26zPdNBhDprHLIBukhyzyvGMf4HzXzEFwqaCdXMzFXh+rrU7X4KqlmjC1OYY?=
 =?us-ascii?Q?NnG3QU/JukUaVg5qxLYgojKh185L9Yg1ffFuWIbd7Yd1eUXf6BYhVGXuBGxR?=
 =?us-ascii?Q?efD76MVjqRWlPmsg0/T3nf9OhTOvOG5pAUKQpWjmjcu8fejWtzoRyra0UT2T?=
 =?us-ascii?Q?2OYRq09V0NFCM4KGqvLs17AMPucf9WI59OzC4Jp9jKHE6smOLg7/SPMlZDRA?=
 =?us-ascii?Q?kVwiDTdal9mwiCG8JrgjdQmvrqF7AY15MtqetquOyB59TPa+ukarMnY3ATac?=
 =?us-ascii?Q?Kmvu6U72eiA13T1+Rbb/EwUxgy5FHhy4GrFMhTE3Qaxw3AswLJ/H+yv8z9qT?=
 =?us-ascii?Q?/Cil3G9Aem9D3G7qyQoKFpLxWcsGsZksIfeUcaWsMav1M8nk9xvgXrA5K/c3?=
 =?us-ascii?Q?QXM+s5ErD/QGH94Ff5nlIromSvcGOEPf+k6UKkivnnXDHQ9+NsJJaMHK3CTe?=
 =?us-ascii?Q?evzXKgLkOVGLI2Ni8k4at0a/RSfHKL7FiL9U4jDd73DNING5i0I5lAbZ7DA2?=
 =?us-ascii?Q?+oz6EfOBgMdkIN2K8JPg8ue9/T1zms5nn7q/nbHiknDnzk0ooKNqb2s81xY3?=
 =?us-ascii?Q?4rugvKnoYIOjmZo7m+JaByUKzMk2y5uLSjdNq6u+lgjnYKxT+5C58ihpOIAP?=
 =?us-ascii?Q?QDNHWg5KXrGgkz7EdAY7fi+uORKWrQqtjp5N9R7QboGyb2Mvpf8azT5Rr8lH?=
 =?us-ascii?Q?JtbOTkRk7uMWTRXis1gGI0SIV56830TN8MdLX6bx6SZWfBHi+bAdw8YTCMHU?=
 =?us-ascii?Q?9oI+4V+DHnMRWYoLG3e/qKiNp1f+nXyLz8dYS7D9SoNnmR3/L6Bbq4iIHliH?=
 =?us-ascii?Q?uzzIQLWe8LmGjDhSDNa9yiH1wAd0Ag91ouLtPpvMvUD7q57t83LX+joIK8/J?=
 =?us-ascii?Q?yeqXOE4z4sEf+Cv5cpn9HVGGiI2FnQ41OCOoRw01a0wzQchgSMHvI67hmLoB?=
 =?us-ascii?Q?4reCAofE3gwJdfJwKG1cgBD3SS34szC56M/hBx/MrCXD6y8rQ8mLeSqWRc/k?=
 =?us-ascii?Q?olqgvHGUD6UOxPEqEqrZecu5Nauoj4neM5BeaRoMGhAhpw1A/oxmVigLKYB7?=
 =?us-ascii?Q?LpMJoO6Npi0SJHx9yW7NEB+sQXU/QxmhX0wN1FqmtBVoulYXrXk3LX5omhrb?=
 =?us-ascii?Q?lsjfFcAkNTHd4LxgYmkBPAqu6dxpYc7JEQnfiLhqYgLNdh7Fd1HB4RIeLc0X?=
 =?us-ascii?Q?4LehOYmj1JEQcD8vTSacWhIHa/z1blOIXeGMO4S/oshieVGvmCEVxBdmxx37?=
 =?us-ascii?Q?SwpxdOlTvsTsj5yUsU/4GfAz2a6hykwIEeuLnmchp0EkEna48PhoiH9W2oAB?=
 =?us-ascii?Q?Rm+H+SE5X7AHGt4V3IXKhRpsAkavkhi5zoZOGUtvU/9tlWrpXQDd8RizW2ai?=
 =?us-ascii?Q?n25Bo/a31aslVGgjPAXhufU5nTPjn27zp5OZGvMTcKyd5XqeRpb7TLRLTWOG?=
 =?us-ascii?Q?mg=3D=3D?=
X-OriginatorOrg: nxp.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1bb5770a-a786-422a-bc74-08dce149b7eb
X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9328.eurprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Sep 2024 12:16:31.5630 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: QpvmqHzux4QSLN5Ue1aGpNP5DplmRWizqO7/2noz1HU4ilo8F5FZNrB5mfDBGzNrVMPrQCv7Pl5gsO71ApjwGw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10583
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

From: Jun Yang <jun.yang@nxp.com>

This patch improves the errata handling for
"RTE_LIBRTE_DPAA_ERRATA_LS1043_A010022"

Signed-off-by: Jun Yang <jun.yang@nxp.com>
---
 drivers/net/dpaa/dpaa_rxtx.c | 40 ++++++++++++++++++++++++++++--------
 1 file changed, 32 insertions(+), 8 deletions(-)

diff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c
index d82c6f3be2..1d7efdef88 100644
--- a/drivers/net/dpaa/dpaa_rxtx.c
+++ b/drivers/net/dpaa/dpaa_rxtx.c
@@ -1258,6 +1258,35 @@ reallocate_mbuf(struct qman_fq *txq, struct rte_mbuf *mbuf)
 	return new_mbufs[0];
 }
 
+#ifdef RTE_LIBRTE_DPAA_ERRATA_LS1043_A010022
+/* In case the data offset is not multiple of 16,
+ * FMAN can stall because of an errata. So reallocate
+ * the buffer in such case.
+ */
+static inline int
+dpaa_eth_ls1043a_mbuf_realloc(struct rte_mbuf *mbuf)
+{
+	uint64_t len, offset;
+
+	if (dpaa_svr_family != SVR_LS1043A_FAMILY)
+		return 0;
+
+	while (mbuf) {
+		len = mbuf->data_len;
+		offset = mbuf->data_off;
+		if ((mbuf->next &&
+			!rte_is_aligned((void *)len, 16)) ||
+			!rte_is_aligned((void *)offset, 16)) {
+			DPAA_PMD_DEBUG("Errata condition hit");
+
+			return 1;
+		}
+		mbuf = mbuf->next;
+	}
+	return 0;
+}
+#endif
+
 uint16_t
 dpaa_eth_queue_tx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs)
 {
@@ -1296,14 +1325,6 @@ dpaa_eth_queue_tx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs)
 				DPAA_TX_BURST_SIZE : nb_bufs;
 		for (loop = 0; loop < frames_to_send; loop++) {
 			mbuf = *(bufs++);
-			/* In case the data offset is not multiple of 16,
-			 * FMAN can stall because of an errata. So reallocate
-			 * the buffer in such case.
-			 */
-			if (dpaa_svr_family == SVR_LS1043A_FAMILY &&
-					(mbuf->data_off & 0x7F) != 0x0)
-				realloc_mbuf = 1;
-
 			fd_arr[loop].cmd = 0;
 			if (dpaa_ieee_1588) {
 				fd_arr[loop].cmd |= DPAA_FD_CMD_FCO |
@@ -1311,6 +1332,9 @@ dpaa_eth_queue_tx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs)
 				fd_arr[loop].cmd |= DPAA_FD_CMD_RPD |
 					DPAA_FD_CMD_UPD;
 			}
+#ifdef RTE_LIBRTE_DPAA_ERRATA_LS1043_A010022
+			realloc_mbuf = dpaa_eth_ls1043a_mbuf_realloc(mbuf);
+#endif
 			seqn = *dpaa_seqn(mbuf);
 			if (seqn != DPAA_INVALID_MBUF_SEQN) {
 				index = seqn - 1;
-- 
2.25.1