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 6C4A7424E7; Wed, 13 Sep 2023 09:45:40 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D92A84027E; Wed, 13 Sep 2023 09:45:39 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id CA52040275 for ; Wed, 13 Sep 2023 09:45:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1694591138; x=1726127138; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=kXBtqxwGKXgHkwyyQryo/J8uEp3/qmd8LlRnFrAuMkc=; b=IoOTSxWaoZsFDD1/iWJX5pqvWXExTCz5q9t58a0cw0UR1bCsiM3eDRIM QTOFLJqdinokBB70r/r+boRl6ijK24XMaYjAMBr/xgiGZztVDjiayvFxw XTde6C+sr7/uTD2C5ngTiTawZyjKrrcu2OefQkzxi6qXSsLH8Hta7zudI gRbWbpOltcpmfBz6JSdkaS27gSpUVcm9SxPUi21UgVZ+e9teGFMgnC2oD iWKFWl7yD+C4+XBd4uWpL9Eg1ZJD0+BrGBx7Lg+J0it8RDzoEDC+Bj6t0 tDCCAd4msBufjLi59m30pL7TxkvsR/8nr/tZqDPLF1kf5Lq8CVyB2fhrG w==; X-IronPort-AV: E=McAfee;i="6600,9927,10831"; a="464962059" X-IronPort-AV: E=Sophos;i="6.02,142,1688454000"; d="scan'208";a="464962059" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2023 00:45:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10831"; a="1074859244" X-IronPort-AV: E=Sophos;i="6.02,142,1688454000"; d="scan'208";a="1074859244" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga005.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 13 Sep 2023 00:45:36 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Wed, 13 Sep 2023 00:45:35 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Wed, 13 Sep 2023 00:45:35 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Wed, 13 Sep 2023 00:45:35 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.106) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Wed, 13 Sep 2023 00:45:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PlTJjw967iUI7C+Oe9u1AU/4bGg+hvfxoWWUVvimf6jygrsVa5n8ig7N0Rtr2lLeW+ZNVMmhNsZd5llwHyvd7sa2YVfxsIDmmHRv8VZV5Cok0s0w7n5D5F+Uo7fM85w7X+LF2d71tVHzl9L3l/t9014ZCiQNToqzH3d+FgrW0jPk1tDmmx8xjAaXSj++LQynnzIYTwGx67e7sYQBAjAHR1CIXkjuinpU1ZjP6cdvjcwpnrUyim7M/QIphuwG7IUlaZFbg0stXJU8cRJRf2NIFHL5gvChjsv/NWovCwAKCWf8bcYKplLsHcx8d4gZtF8aReqOx3CPNJ5jr9WavEecUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=I/nl4DkbJMfDdD490PN4qdRUfDXXei/8HQE1oJGLFNs=; b=Jr66yBAbXxNKAe6NNhPanqDGuu0ani+B5jD0jqeRgr/nHxz7dPs28EcKmppg46CRKM/KG8jqV2VblUUQhvwNz96i9H0Nj7u/PATiYQC+pLXdkpKLxa7v342kxdAgi8dLqpZLCT7fruxDMs0+XogGrSTeVTZ4bmqMfibgk5SHIv3TBud4o+HmFljc0Kxq+nFFD0TRayCaLqWmudH2eHVcNJpyxaomyVzoBWrOjjxL0bvlCGcLk+PpqDBVozO+7UGynS/xaajQryjNwTms2qRejYTSUcRe2u5IF5qNxOofuaZk22WamqF0uzwJu/uj9XK5DohVKbOR7pUpL1RgVOdBPA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM4PR11MB5994.namprd11.prod.outlook.com (2603:10b6:8:5d::20) by PH8PR11MB8062.namprd11.prod.outlook.com (2603:10b6:510:251::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.19; Wed, 13 Sep 2023 07:45:33 +0000 Received: from DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::8a49:15a2:ab69:91c3]) by DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::8a49:15a2:ab69:91c3%4]) with mapi id 15.20.6768.029; Wed, 13 Sep 2023 07:45:33 +0000 From: "Zhang, Qi Z" To: "Wu, Wenjun1" , "Su, Simei" , "Wu, Jingjing" , "Xing, Beilei" CC: "dev@dpdk.org" Subject: RE: [PATCH v3] common/idpf: refactor single queue Tx function Thread-Topic: [PATCH v3] common/idpf: refactor single queue Tx function Thread-Index: AQHZ4j8bHrteB3Jxw0+icKm5+zsIy7AYSdIAgAAeIuA= Date: Wed, 13 Sep 2023 07:45:33 +0000 Message-ID: References: <20230904070258.2130174-1-simei.su@intel.com> <20230908102827.2256297-1-simei.su@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB5994:EE_|PH8PR11MB8062:EE_ x-ms-office365-filtering-correlation-id: b9ccdb96-8ffc-444d-e539-08dbb42d694b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vwysjOzzbh4yY0SiDWXkL5HeXtz7oCH7kxH4wtWjhM1y6WNm3h0IZvKTn2z5CxKDXAiS/G4Z/ds+KRGr/J6B3yDBsaB+yeo4s8abeGX1Kghx2Qavq8IuSwTU1wZSYbO/wnH6O4rzZ7vzGmJONoKQgXveNpy1XcB9gU1kYxzv/CdTa82Rv+YGCTw/UA/3mIrmUj5eALogzu3WnMQdm8Dd8IwZmlyKqDy51P9C6YsFNPczb8VGmZmtJBkRrW4K1+LwF+1g8lz/OqcnLmhfkoWEV2kSBIzoeCWPmCnSZAqgCPJmRqHgdzMUPJCRgaFfezl6EHL28i/YGksey50ZhUC601gtHe9QX+5euvBDQDmzf4BzSxyy/8Kj1adcLX5Z37LVuuvfTqjty6bvRZr14SVRZ7giBXT8odLzd8KD2wlSuaoDtvPsQg38RXnrPw6QR9CtJNwj8PI+zGYgdK23PV3StETfda5sXjG0dlA2rwNbCdxYehQ826Va7TiPB4fkSKfl+p1dGw62FqiWjqFlSqU5dXoYpjSTxWTG/xNMbpUfjzppPPGd6iP6CYfRxBPyRY0xtNOCFNBQF7fG1TYhj3gStjOgx4KWAkAMpsqUsUDbJU8= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5994.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(376002)(39860400002)(346002)(396003)(136003)(451199024)(1800799009)(186009)(53546011)(82960400001)(71200400001)(66946007)(2906002)(30864003)(55016003)(6636002)(5660300002)(8936002)(4326008)(52536014)(8676002)(33656002)(41300700001)(316002)(66476007)(66556008)(66446008)(64756008)(6506007)(9686003)(86362001)(478600001)(7696005)(38070700005)(122000001)(26005)(110136005)(76116006)(38100700002)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?KCRNx75AUqlhbcBfFQbJWsRtqneTpfioYkOX+8fAaXBPCM0WcUXZ1Y9BVTxX?= =?us-ascii?Q?M3x1+UDmoAVCdJvOgjsRVhAyOurU46WvVldWVIvNfj6qsiBCNJ/8OZ3igffF?= =?us-ascii?Q?dj1hyhL6Fm5HrDmW48m8hp8h+Y9svDi8i3XGtpbSIc/0o1grrFnbJANrow4d?= =?us-ascii?Q?5Tiov2oWBklK7cJoXUzLUqr850m+9JALKu+1On/PVwPNELG+zQI4PdrPsEp7?= =?us-ascii?Q?Qzas8sSDPY/o5w7hR8w/b4VhT275YpyJQ9TIy3qWS8ntvuVzxjOQ5h+tADKH?= =?us-ascii?Q?t2EJRjufia2XBoJM0aVNGRTSIQruYgiaaQJyDo/NTr1yyC/h149r8t8bsTl7?= =?us-ascii?Q?ykhDyJo1EvnAEhVC+fSzGzIuLXJvxJd2M+f1Xy5Gskp1QhUfNl9A0WHfk6FM?= =?us-ascii?Q?xd2Ovii0UgaN54oU8bY4wHafoDf67YvYoewSi2iP6yu4mVssPhjDf91tRsRi?= =?us-ascii?Q?8JAX5DHfmw2ScHSFTgdnF7OXsaptdjCtOSrMPscsaSVd1FO0s/IFsCRelO9o?= =?us-ascii?Q?N0N1LrfL9jXTyucGgaWe72JlD2N6LdmR09mtboVUW2OLAeRB04OT1YtHclaD?= =?us-ascii?Q?qGwHx7/q3TXJzPPFnn4qX0MaKFSrzykU28F4dv3PxPWR1a1TcYN8PzxOgKm1?= =?us-ascii?Q?kIRMLOd1vzZhpJG3RwHm2zBiiBB6Q1E4VNevxoflYpT1cx1uD+4PbIxfwTBn?= =?us-ascii?Q?oaDYPBIpPUj83eHp3fDmWYCIuXJNAa3mWL0n0uLwAdN6Y57rJykdeXV0AHVS?= =?us-ascii?Q?2MClG0hMPgD0JkkOeGV7nEfxiFum+Xedi5wuuYsKdMA3S2hzkI/+27r7f5PX?= =?us-ascii?Q?cHm8dnPFvACbI77AC0dfdxQ5HAHJ6AxJ6c8sOKpCN1kxLLD7LAyRCpv8cBzE?= =?us-ascii?Q?inMD8apq7PBj0r32Lslyc9Cp69Q67p0pN6ydE2BxZQjTprAQkLcN6B+yDx9r?= =?us-ascii?Q?VLDDHLDTcspllXxLGUROhmly4nLXhQLjSywOZhsf2x7sKyJCyLvPV1lgJBJl?= =?us-ascii?Q?xhyvjkfCzwFCD0xg465DhpSE/CZc41RzNMbP1oWdRqWvPNRcp2SfBO1C4bob?= =?us-ascii?Q?5Xy3bhNcuQBrxeKems8/zxwswlNcMKQ4raIBWemh4cxrzQ1qEr4eyALJenWw?= =?us-ascii?Q?gJ1jr4CmyhQg+D6B3PWs6tIWyw3aQilfEgiLxcyAtytILKG3H3cEm9PEToZv?= =?us-ascii?Q?aFcuicz3pxc2pO9W/dl+eEWAWEfHVhGFyDEFaYYqG3r2fLGv76WgJriAwAaz?= =?us-ascii?Q?dxTMK9iU4cnkhMSI0Qp/qKNd73ItV/SgnHu/z0O59lVzjcdHGTVeniHW0vEs?= =?us-ascii?Q?7K9tbApwe/k7FXeOZA3i+4aM5tQgb14XocP9q36/wBzDp+epBk5NMNai31Qp?= =?us-ascii?Q?0SRZL3hwALTWo1har2+l9Ev6+in8UdZSrbnS/wDy4isJPPYCcO8Goc/ijvyN?= =?us-ascii?Q?hs+obalOBpnW93jnBkOK9BceD1G9F0JMyQqOpgN93+co3mGyzHXYd7XlSEyQ?= =?us-ascii?Q?7ZsXLGEB4pR1V9JKcJRTXfh34xIJMV5+YKFOZW2rGGj6e3jCUiinfcURQuHa?= =?us-ascii?Q?Evx1GuaA1pnoWtmN1f/m15GsWtSikuBcWNNDTB3V?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5994.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9ccdb96-8ffc-444d-e539-08dbb42d694b X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Sep 2023 07:45:33.5982 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dhNRZLe4fweBKf9FIyWCnDT4u+yRw5lSUTrxcL+9jhd9NzvGPM8EZ9RWOvH9/nWpl006x14e89v9QLf31DMU8w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB8062 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Wu, Wenjun1 > Sent: Wednesday, September 13, 2023 1:57 PM > To: Su, Simei ; Wu, Jingjing ; > Xing, Beilei ; Zhang, Qi Z > Cc: dev@dpdk.org > Subject: RE: [PATCH v3] common/idpf: refactor single queue Tx function >=20 >=20 >=20 > > -----Original Message----- > > From: Su, Simei > > Sent: Friday, September 8, 2023 6:28 PM > > To: Wu, Jingjing ; Xing, Beilei > > ; Zhang, Qi Z > > Cc: dev@dpdk.org; Wu, Wenjun1 ; Su, Simei > > > > Subject: [PATCH v3] common/idpf: refactor single queue Tx function > > > > This patch replaces flex Tx descriptor with base Tx descriptor to > > align with kernel driver practice. > > > > Signed-off-by: Simei Su > > --- > > v3: > > * Change context TSO descriptor from base mode to flex mode. > > > > v2: > > * Refine commit title and commit log. > > * Remove redundant definition. > > * Modify base mode context TSO descriptor. > > > > drivers/common/idpf/idpf_common_rxtx.c | 39 +++++++++---------- > > drivers/common/idpf/idpf_common_rxtx.h | 2 +- > > drivers/common/idpf/idpf_common_rxtx_avx512.c | 37 +++++++++--------- > > drivers/net/idpf/idpf_rxtx.c | 2 +- > > 4 files changed, 39 insertions(+), 41 deletions(-) > > > > diff --git a/drivers/common/idpf/idpf_common_rxtx.c > > b/drivers/common/idpf/idpf_common_rxtx.c > > index fc87e3e243..e6d2486272 100644 > > --- a/drivers/common/idpf/idpf_common_rxtx.c > > +++ b/drivers/common/idpf/idpf_common_rxtx.c > > @@ -276,14 +276,14 @@ idpf_qc_single_tx_queue_reset(struct > > idpf_tx_queue *txq) > > } > > > > txe =3D txq->sw_ring; > > - size =3D sizeof(struct idpf_flex_tx_desc) * txq->nb_tx_desc; > > + size =3D sizeof(struct idpf_base_tx_desc) * txq->nb_tx_desc; > > for (i =3D 0; i < size; i++) > > ((volatile char *)txq->tx_ring)[i] =3D 0; > > > > prev =3D (uint16_t)(txq->nb_tx_desc - 1); > > for (i =3D 0; i < txq->nb_tx_desc; i++) { > > - txq->tx_ring[i].qw1.cmd_dtype =3D > > - > > rte_cpu_to_le_16(IDPF_TX_DESC_DTYPE_DESC_DONE); > > + txq->tx_ring[i].qw1 =3D > > + > > rte_cpu_to_le_64(IDPF_TX_DESC_DTYPE_DESC_DONE); > > txe[i].mbuf =3D NULL; > > txe[i].last_id =3D i; > > txe[prev].next_id =3D i; > > @@ -1307,17 +1307,16 @@ idpf_xmit_cleanup(struct idpf_tx_queue *txq) > > uint16_t nb_tx_to_clean; > > uint16_t i; > > > > - volatile struct idpf_flex_tx_desc *txd =3D txq->tx_ring; > > + volatile struct idpf_base_tx_desc *txd =3D txq->tx_ring; > > > > desc_to_clean_to =3D (uint16_t)(last_desc_cleaned + txq->rs_thresh); > > if (desc_to_clean_to >=3D nb_tx_desc) > > desc_to_clean_to =3D (uint16_t)(desc_to_clean_to - > nb_tx_desc); > > > > desc_to_clean_to =3D sw_ring[desc_to_clean_to].last_id; > > - /* In the writeback Tx desccriptor, the only significant fields are t= he 4- > > bit DTYPE */ > > - if ((txd[desc_to_clean_to].qw1.cmd_dtype & > > - rte_cpu_to_le_16(IDPF_TXD_QW1_DTYPE_M)) !=3D > > - rte_cpu_to_le_16(IDPF_TX_DESC_DTYPE_DESC_DONE)) { > > + if ((txd[desc_to_clean_to].qw1 & > > + rte_cpu_to_le_64(IDPF_TXD_QW1_DTYPE_M)) !=3D > > + rte_cpu_to_le_64(IDPF_TX_DESC_DTYPE_DESC_DONE)) { > > TX_LOG(DEBUG, "TX descriptor %4u is not done " > > "(port=3D%d queue=3D%d)", desc_to_clean_to, > > txq->port_id, txq->queue_id); @@ -1331,10 +1330,7 @@ > > idpf_xmit_cleanup(struct idpf_tx_queue *txq) > > nb_tx_to_clean =3D (uint16_t)(desc_to_clean_to - > > last_desc_cleaned); > > > > - txd[desc_to_clean_to].qw1.cmd_dtype =3D 0; > > - txd[desc_to_clean_to].qw1.buf_size =3D 0; > > - for (i =3D 0; i < RTE_DIM(txd[desc_to_clean_to].qw1.flex.raw); i++) > > - txd[desc_to_clean_to].qw1.flex.raw[i] =3D 0; > > + txd[desc_to_clean_to].qw1 =3D 0; > > > > txq->last_desc_cleaned =3D desc_to_clean_to; > > txq->nb_free =3D (uint16_t)(txq->nb_free + nb_tx_to_clean); @@ - > > 1347,8 +1343,8 @@ uint16_t idpf_dp_singleq_xmit_pkts(void *tx_queue, > > struct rte_mbuf **tx_pkts, > > uint16_t nb_pkts) > > { > > - volatile struct idpf_flex_tx_desc *txd; > > - volatile struct idpf_flex_tx_desc *txr; > > + volatile struct idpf_base_tx_desc *txd; > > + volatile struct idpf_base_tx_desc *txr; > > union idpf_tx_offload tx_offload =3D {0}; > > struct idpf_tx_entry *txe, *txn; > > struct idpf_tx_entry *sw_ring; > > @@ -1356,6 +1352,7 @@ idpf_dp_singleq_xmit_pkts(void *tx_queue, > struct > > rte_mbuf **tx_pkts, > > struct rte_mbuf *tx_pkt; > > struct rte_mbuf *m_seg; > > uint64_t buf_dma_addr; > > + uint32_t td_offset; > > uint64_t ol_flags; > > uint16_t tx_last; > > uint16_t nb_used; > > @@ -1382,6 +1379,7 @@ idpf_dp_singleq_xmit_pkts(void *tx_queue, > struct > > rte_mbuf **tx_pkts, > > > > for (nb_tx =3D 0; nb_tx < nb_pkts; nb_tx++) { > > td_cmd =3D 0; > > + td_offset =3D 0; > > > > tx_pkt =3D *tx_pkts++; > > RTE_MBUF_PREFETCH_TO_FREE(txe->mbuf); > > @@ -1462,9 +1460,10 @@ idpf_dp_singleq_xmit_pkts(void *tx_queue, > > struct rte_mbuf **tx_pkts, > > slen =3D m_seg->data_len; > > buf_dma_addr =3D rte_mbuf_data_iova(m_seg); > > txd->buf_addr =3D rte_cpu_to_le_64(buf_dma_addr); > > - txd->qw1.buf_size =3D slen; > > - txd->qw1.cmd_dtype =3D > > rte_cpu_to_le_16(IDPF_TX_DESC_DTYPE_FLEX_DATA << > > - > > IDPF_FLEX_TXD_QW1_DTYPE_S); > > + txd->qw1 =3D > > rte_cpu_to_le_64(IDPF_TX_DESC_DTYPE_DATA | > > + ((uint64_t)td_cmd << > > IDPF_TXD_QW1_CMD_S) | > > + ((uint64_t)td_offset << > > IDPF_TXD_QW1_OFFSET_S) | > > + ((uint64_t)slen << > > IDPF_TXD_QW1_TX_BUF_SZ_S)); > > > > txe->last_id =3D tx_last; > > tx_id =3D txe->next_id; > > @@ -1473,7 +1472,7 @@ idpf_dp_singleq_xmit_pkts(void *tx_queue, > struct > > rte_mbuf **tx_pkts, > > } while (m_seg); > > > > /* The last packet data descriptor needs End Of Packet (EOP) > */ > > - td_cmd |=3D IDPF_TX_FLEX_DESC_CMD_EOP; > > + td_cmd |=3D IDPF_TX_DESC_CMD_EOP; > > txq->nb_used =3D (uint16_t)(txq->nb_used + nb_used); > > txq->nb_free =3D (uint16_t)(txq->nb_free - nb_used); > > > > @@ -1482,7 +1481,7 @@ idpf_dp_singleq_xmit_pkts(void *tx_queue, > struct > > rte_mbuf **tx_pkts, > > "%4u (port=3D%d queue=3D%d)", > > tx_last, txq->port_id, txq->queue_id); > > > > - td_cmd |=3D IDPF_TX_FLEX_DESC_CMD_RS; > > + td_cmd |=3D IDPF_TX_DESC_CMD_RS; > > > > /* Update txq RS bit counters */ > > txq->nb_used =3D 0; > > @@ -1491,7 +1490,7 @@ idpf_dp_singleq_xmit_pkts(void *tx_queue, > struct > > rte_mbuf **tx_pkts, > > if (ol_flags & IDPF_TX_CKSUM_OFFLOAD_MASK) > > td_cmd |=3D IDPF_TX_FLEX_DESC_CMD_CS_EN; > > > > - txd->qw1.cmd_dtype |=3D rte_cpu_to_le_16(td_cmd << > > IDPF_FLEX_TXD_QW1_CMD_S); > > + txd->qw1 |=3D rte_cpu_to_le_16(td_cmd << > > IDPF_TXD_QW1_CMD_S); > > } > > > > end_of_tx: > > diff --git a/drivers/common/idpf/idpf_common_rxtx.h > > b/drivers/common/idpf/idpf_common_rxtx.h > > index 6cb83fc0a6..b49b1ed737 100644 > > --- a/drivers/common/idpf/idpf_common_rxtx.h > > +++ b/drivers/common/idpf/idpf_common_rxtx.h > > @@ -157,7 +157,7 @@ struct idpf_tx_entry { > > /* Structure associated with each TX queue. */ struct idpf_tx_queue { > > const struct rte_memzone *mz; /* memzone for Tx ring */ > > - volatile struct idpf_flex_tx_desc *tx_ring; /* Tx ring virtual > > address */ > > + volatile struct idpf_base_tx_desc *tx_ring; /* Tx ring virtual > > address */ > > volatile union { > > struct idpf_flex_tx_sched_desc *desc_ring; > > struct idpf_splitq_tx_compl_desc *compl_ring; diff --git > > a/drivers/common/idpf/idpf_common_rxtx_avx512.c > > b/drivers/common/idpf/idpf_common_rxtx_avx512.c > > index 81312617cc..afb0014a13 100644 > > --- a/drivers/common/idpf/idpf_common_rxtx_avx512.c > > +++ b/drivers/common/idpf/idpf_common_rxtx_avx512.c > > @@ -1005,7 +1005,7 @@ idpf_tx_singleq_free_bufs_avx512(struct > > idpf_tx_queue *txq) > > struct rte_mbuf *m, *free[txq->rs_thresh]; > > > > /* check DD bits on threshold descriptor */ > > - if ((txq->tx_ring[txq->next_dd].qw1.cmd_dtype & > > + if ((txq->tx_ring[txq->next_dd].qw1 & > > rte_cpu_to_le_64(IDPF_TXD_QW1_DTYPE_M)) !=3D > > > > rte_cpu_to_le_64(IDPF_TX_DESC_DTYPE_DESC_DONE)) > > return 0; > > @@ -1113,15 +1113,14 @@ tx_backlog_entry_avx512(struct > > idpf_tx_vec_entry *txep, > > txep[i].mbuf =3D tx_pkts[i]; > > } > > > > -#define IDPF_FLEX_TXD_QW1_BUF_SZ_S 48 static __rte_always_inline > > void -idpf_singleq_vtx1(volatile struct idpf_flex_tx_desc *txdp, > > +idpf_singleq_vtx1(volatile struct idpf_base_tx_desc *txdp, > > struct rte_mbuf *pkt, uint64_t flags) { > > uint64_t high_qw =3D > > - (IDPF_TX_DESC_DTYPE_FLEX_DATA << > > IDPF_FLEX_TXD_QW1_DTYPE_S | > > - ((uint64_t)flags << IDPF_FLEX_TXD_QW1_CMD_S) | > > - ((uint64_t)pkt->data_len << > > IDPF_FLEX_TXD_QW1_BUF_SZ_S)); > > + (IDPF_TX_DESC_DTYPE_DATA | > > + ((uint64_t)flags << IDPF_TXD_QW1_CMD_S) | > > + ((uint64_t)pkt->data_len << IDPF_TXD_QW1_TX_BUF_SZ_S)); > > > > __m128i descriptor =3D _mm_set_epi64x(high_qw, > > pkt->buf_iova + pkt->data_off); > @@ -1131,11 +1130,11 @@ > > idpf_singleq_vtx1(volatile struct idpf_flex_tx_desc *txdp, #define > > IDPF_TX_LEN_MASK 0xAA #define IDPF_TX_OFF_MASK 0x55 static > > __rte_always_inline void - idpf_singleq_vtx(volatile struct > > idpf_flex_tx_desc *txdp, > > +idpf_singleq_vtx(volatile struct idpf_base_tx_desc *txdp, > > struct rte_mbuf **pkt, uint16_t nb_pkts, uint64_t flags) { > > - const uint64_t hi_qw_tmpl =3D (IDPF_TX_DESC_DTYPE_FLEX_DATA | > > - ((uint64_t)flags << IDPF_FLEX_TXD_QW1_CMD_S)); > > + const uint64_t hi_qw_tmpl =3D (IDPF_TX_DESC_DTYPE_DATA | > > + ((uint64_t)flags << IDPF_TXD_QW1_CMD_S)); > > > > /* if unaligned on 32-bit boundary, do one to align */ > > if (((uintptr_t)txdp & 0x1F) !=3D 0 && nb_pkts !=3D 0) { @@ -1148,19 > > +1147,19 @@ idpf_singleq_vtx(volatile struct idpf_flex_tx_desc *txdp, > > uint64_t hi_qw3 =3D > > hi_qw_tmpl | > > ((uint64_t)pkt[3]->data_len << > > - IDPF_FLEX_TXD_QW1_BUF_SZ_S); > > + IDPF_TXD_QW1_TX_BUF_SZ_S); > > uint64_t hi_qw2 =3D > > hi_qw_tmpl | > > ((uint64_t)pkt[2]->data_len << > > - IDPF_FLEX_TXD_QW1_BUF_SZ_S); > > + IDPF_TXD_QW1_TX_BUF_SZ_S); > > uint64_t hi_qw1 =3D > > hi_qw_tmpl | > > ((uint64_t)pkt[1]->data_len << > > - IDPF_FLEX_TXD_QW1_BUF_SZ_S); > > + IDPF_TXD_QW1_TX_BUF_SZ_S); > > uint64_t hi_qw0 =3D > > hi_qw_tmpl | > > ((uint64_t)pkt[0]->data_len << > > - IDPF_FLEX_TXD_QW1_BUF_SZ_S); > > + IDPF_TXD_QW1_TX_BUF_SZ_S); > > > > __m512i desc0_3 =3D > > _mm512_set_epi64 > > @@ -1187,11 +1186,11 @@ > idpf_singleq_xmit_fixed_burst_vec_avx512(void > > *tx_queue, struct rte_mbuf **tx_pk > > uint16_t nb_pkts) > > { > > struct idpf_tx_queue *txq =3D tx_queue; > > - volatile struct idpf_flex_tx_desc *txdp; > > + volatile struct idpf_base_tx_desc *txdp; > > struct idpf_tx_vec_entry *txep; > > uint16_t n, nb_commit, tx_id; > > - uint64_t flags =3D IDPF_TX_FLEX_DESC_CMD_EOP; > > - uint64_t rs =3D IDPF_TX_FLEX_DESC_CMD_RS | flags; > > + uint64_t flags =3D IDPF_TX_DESC_CMD_EOP; > > + uint64_t rs =3D IDPF_TX_DESC_CMD_RS | flags; > > > > /* cross rx_thresh boundary is not allowed */ > > nb_pkts =3D RTE_MIN(nb_pkts, txq->rs_thresh); @@ -1238,9 +1237,9 > @@ > > idpf_singleq_xmit_fixed_burst_vec_avx512(void *tx_queue, struct > > rte_mbuf **tx_pk > > > > tx_id =3D (uint16_t)(tx_id + nb_commit); > > if (tx_id > txq->next_rs) { > > - txq->tx_ring[txq->next_rs].qw1.cmd_dtype |=3D > > - > > rte_cpu_to_le_64(((uint64_t)IDPF_TX_FLEX_DESC_CMD_RS) << > > - IDPF_FLEX_TXD_QW1_CMD_S); > > + txq->tx_ring[txq->next_rs].qw1 |=3D > > + > > rte_cpu_to_le_64(((uint64_t)IDPF_TX_DESC_CMD_RS) << > > + IDPF_TXD_QW1_CMD_S); > > txq->next_rs =3D > > (uint16_t)(txq->next_rs + txq->rs_thresh); > > } > > diff --git a/drivers/net/idpf/idpf_rxtx.c > > b/drivers/net/idpf/idpf_rxtx.c index > > 3e3d81ca6d..64f2235580 100644 > > --- a/drivers/net/idpf/idpf_rxtx.c > > +++ b/drivers/net/idpf/idpf_rxtx.c > > @@ -74,7 +74,7 @@ idpf_dma_zone_reserve(struct rte_eth_dev *dev, > > uint16_t queue_idx, > > ring_size =3D RTE_ALIGN(len * sizeof(struct > > idpf_flex_tx_sched_desc), > > IDPF_DMA_MEM_ALIGN); > > else > > - ring_size =3D RTE_ALIGN(len * sizeof(struct > > idpf_flex_tx_desc), > > + ring_size =3D RTE_ALIGN(len * sizeof(struct > > idpf_base_tx_desc), > > IDPF_DMA_MEM_ALIGN); > > rte_memcpy(ring_name, "idpf Tx ring", sizeof("idpf Tx ring")); > > break; > > -- > > 2.25.1 >=20 > Acked-by: Wenjun Wu Applied to dpdk-next-net-intel. Thanks Qi