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 1C9C5A0C41; Tue, 5 Oct 2021 01:38:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9C2E6410DC; Tue, 5 Oct 2021 01:38:10 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id A430C4068F for ; Tue, 5 Oct 2021 01:38:09 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10127"; a="248867903" X-IronPort-AV: E=Sophos;i="5.85,347,1624345200"; d="scan'208";a="248867903" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Oct 2021 16:38:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,347,1624345200"; d="scan'208";a="544555325" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga004.fm.intel.com with ESMTP; 04 Oct 2021 16:38:08 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 4 Oct 2021 16:38:07 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Mon, 4 Oct 2021 16:38:07 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.109) 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.2242.12; Mon, 4 Oct 2021 16:38:07 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vtl10uqY2wwKlzC0YonYJUvLTeVQJF2gCv8Gs3Pyrv7XqGGWZyNM6r1p4zhIkix8kkEd5wLH/JdJvsOdsCIx8shrFEPagJ++LJETLbSRbQSIcxTK9WXtdcA3gN592PpA6JGhR9a8w575cmiinTVtoHMB5WsTdXVlRGzFkpcZM53tuf9EALkvG/stO6kQCuvrS6qudHA13HZK2DWrsfDpGnmhDk2foug+cu9ryOHyOM6n/jS5/nKY22vKSH6P0z9Mcaua04UAlCAfRxA8dIai0HfFOlmZo+IAX3gdVibzq/l1qXmwku5sNO7UHs9Wq3J8kbEe30L1MlzKhaK3kUyQNQ== 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=sfpqczxdA5gyJlQIOkU5RqcjRgEaS2OrQfAd9BTJ7i4=; b=PnuQlkwEnPCTRql1SAkIvuT3LSf1TBK7/0dpVu4bm64RsAwFgkBcbFwWGDmX3ELztW49SxB3sykL8UjPzT6sxLafWbhw/FnD8yoWg0MpzvScyIsdZwNBbml2ww20qJ89Za9crXU9PQ5EvA3mTVcEvJr6nsvXHF340PT954LDTLyEODZKoZMuKL9lMI8lUsLuGzKRjB4XyxtcAnGxWN6XqyJivqG13hXZBQFnQ/XBekkmt6nOiVSCW72poAN5q2kKH4oV3syF+EdBiaWDdEihI/ajXr8U5o9CJA4CKNgdpX9yFSMAahoVYMsNnAnN2aJRPBX7FPRQ3pb9G9jKGajKfg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sfpqczxdA5gyJlQIOkU5RqcjRgEaS2OrQfAd9BTJ7i4=; b=ZnKRVAUbSWa8P2BMNYYQHHVoYTWdWimQuA1ZlEky0AZqBe9sb5qTug+SfOyylCGTIIt2R8vYCmDwEFTz5iUhan4/s/eSdgKYiqaFBg44c4wrbcnTJyLtg/igdgWUNpZZS6qIYTcxcedq91lCNrAOV51yMoCcfyNd4x8jJkTZGkw= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BYAPR11MB3333.namprd11.prod.outlook.com (2603:10b6:a03:19::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19; Mon, 4 Oct 2021 23:38:06 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::d2d:4882:88be:85bd]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::d2d:4882:88be:85bd%7]) with mapi id 15.20.4566.022; Mon, 4 Oct 2021 23:38:06 +0000 From: "Chautru, Nicolas" To: "nipun.gupta@nxp.com" , "dev@dpdk.org" , "gakhil@marvell.com" CC: "david.marchand@redhat.com" , "hemant.agrawal@nxp.com" Thread-Topic: [PATCH v7 8/9] app/bbdev: handle endianness of test data Thread-Index: AQHXtEMULPgD2YYFWEGR674EgX+5oKvDh32w Date: Mon, 4 Oct 2021 23:38:06 +0000 Message-ID: References: <20210318063421.14895-1-hemant.agrawal@nxp.com> <20210928082953.18731-1-nipun.gupta@nxp.com> <20210928082953.18731-9-nipun.gupta@nxp.com> In-Reply-To: <20210928082953.18731-9-nipun.gupta@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1ef0a223-565c-4883-ecea-08d987900443 x-ms-traffictypediagnostic: BYAPR11MB3333: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4941; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RQXu46lJkRFkHYgFX15VzROXWP9fPILBCYIREjm5S4zJ90DWjKbiFSFFZG+eKhz9gY3a9vOotX47s9gKji8B2L5daIBrOsSAv3yKkm0A7I4QBHzR6CpL3IOYqkkjxwehY4am4Uswvp8zNsWLsw9eIacWdeUEcECHVUtxa67itlidndVsKyW3xLZyye+UC+pdqYdHi/hweFo8J6zr+bw3W8hlLN0+PFh/AutAbd8P/fJvWkEYEJMBWVxSP/9X4f/kPEaSiSpc9WTHaxVsTowI96+ia5kcFNiUTzfYqVWd1+KUBrJeTzgqOPN+dbT6OsYroDDZ2vOKYCfCW9c7+cQX3o3KfRONFBiQwbuQoFf+suIpyNQ3dJDhd1t0YKRCnkcuakAXCnhMQrmDIN3Ul7c1U3o0wojRYuIenzVE7Iof5+/adNDGWuhP167sGVd9VBSAkrys7JEa7h7NW2WDo+sCianG7I4MR6tMHutpfKjYadV3avoJd/WuLuWhGGyuKsENxgb7f/1HK6aY2f67zJbEdL88f6hyxVpJCZq84xkT1Gpj7GFOYm13rA0q9SrvX+c5gVUtePypGx67fivowQoAwkq53PJnQFu6RD9iKx9nxumY7CW4EziQECFxmfOrfA/LVvvJUCoywP/86MDuLT3mtBH7DVfFxxRfFTaK/9/KJzHMDqdXm1fhHQ0DQT6Sj+GZ0LOewlnSYrY+xqPebtCXZw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38070700005)(122000001)(316002)(8676002)(38100700002)(4326008)(83380400001)(54906003)(33656002)(8936002)(110136005)(508600001)(53546011)(66446008)(9686003)(66476007)(86362001)(66556008)(71200400001)(55016002)(7696005)(26005)(66946007)(76116006)(2906002)(64756008)(5660300002)(52536014)(186003)(6506007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?nvLXCjrhDIUdalAqb5GPw60ySH+kI03F9gUBz0ZL0EKP7glLqeb+Oi8jSqjE?= =?us-ascii?Q?rF9Rl25VLFK1EMIdg65bZP4TpaleSjh5+f79NR0G6/xF5MU+bKKgKvRBVESQ?= =?us-ascii?Q?GUyfprC6CZaJX399ofFgA/udJrnF6nuXyvJUaHCKWuaEznFqrVVDXZ0Cjd7a?= =?us-ascii?Q?jx+5DdMCdWTMb4UTB/lqIJ3FwlJi9mBb+FWn4q4ZRBrP+j1bV0BEAS69OfbA?= =?us-ascii?Q?8E5Gs0MPQophwGqxgHDS/4FhyLY6gjbdEWalCjlHSKk/iT0elF/1LeqC/L5P?= =?us-ascii?Q?rUnuNbrS+rDNWtzgujaxW/1IpHkIWhw38k1+RCG80n+3Z6df5ItCE7FF5P99?= =?us-ascii?Q?al6zZPX8d2gbQw3N0Z05nURiikUqLCueU0dd+CseUcAYf6DkW8Mo/VlOaAl7?= =?us-ascii?Q?Vz4mxGLu3O9Qgn94iW4CXinJRTlyIbQIijyz2GFrrrDRCoHEN8Hw9EBgzi2F?= =?us-ascii?Q?LawySL5yMvZOFl3UUCDWWcOLY0h6XS7uwkcRR2W5bDI3SF5+FbSrdczBx9lq?= =?us-ascii?Q?VyT45bW3k9myzGw5+9OXS2USzP7YOOnuQZMhQawoLR5hvBwMOJE3MW6hFI6g?= =?us-ascii?Q?SesFW7c4o2E8OPU+WjcPcgOC8z1b8uD6zdzToeReXhzduJw2rykG647iaY7Y?= =?us-ascii?Q?i1Y8N8zrNW1PGWo4hfS0xr66LzhDHDmK3ksyBLM+H2I2w5QP60GX7Qio4qyI?= =?us-ascii?Q?ZOID/sncnWf/EpobOP17ShxsOVYqPzoEdRZrHuFknB8LcuhoFl8FdFnwUqL5?= =?us-ascii?Q?vSpMdKH5CaNN2nV/M6+eAS1lxn4RpXBuCMzCAcdRd+i6WEgFb9csP6Z2Ln/g?= =?us-ascii?Q?Fvn9SdQlpaAqH6BuqwNbvJ21p/WP8aSchq8JESZLz5Z6/AjXgubsQJE1+B6G?= =?us-ascii?Q?/INRQkuEMoIcea0SGCW/YB8UQz/LtujcB3ZVvhnGRdgL7ZRF9CIXsjsZeztH?= =?us-ascii?Q?xpriGGDMzRto12seJ30s/5RLHiSdzXgIhyCu96e80pjy1dcjfR7toz4SRskQ?= =?us-ascii?Q?U3Ve06mqrGP07nBpXv280TsN8+s6rX8kVggqOxuka5/s0jTuEgFCgo+IP3BR?= =?us-ascii?Q?HLSxuFAIWdjfYdiXxHFux5meqjZYl4v0keaBbKPsdqIqsHo311jz5UFDqSLO?= =?us-ascii?Q?4PX419v7HZQuaHIvxxQyAUneLUHwHOPfoUTmFNLdnKBjKH6dphZ4PDsVhYfF?= =?us-ascii?Q?QQWv8IsVFWuWbXDPTKki6TnuiZDxYjgFt+tZuU+9baqdVxKFTjPzHO/U86Kw?= =?us-ascii?Q?XWVxouudfiXQpRRqd1TD7X+vH2TwznWOgV6TnhQChAxblFsiNSyazI/AqIJI?= =?us-ascii?Q?O40lVewlk8MkpWGdJVhMSRT6?= x-ms-exchange-transport-forked: True 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: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ef0a223-565c-4883-ecea-08d987900443 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2021 23:38:06.4997 (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: RKfp9DJgv6JtcLDwM44A4jYepgDNXeeU05q1Caar1QeHR7hhUh26cHLpzK7LEb6dsOJWyBAGQXab52GfDxigRi1yhv3/RdoxIPAWqbZMV3c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3333 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v7 8/9] app/bbdev: handle endianness of test data 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 Sender: "dev" > -----Original Message----- > From: nipun.gupta@nxp.com > Sent: Tuesday, September 28, 2021 1:30 AM > To: dev@dpdk.org; gakhil@marvell.com; Chautru, Nicolas > > Cc: david.marchand@redhat.com; hemant.agrawal@nxp.com; Nipun Gupta > > Subject: [PATCH v7 8/9] app/bbdev: handle endianness of test data >=20 > From: Nipun Gupta >=20 > With data input, output and harq also supported in big endian format, thi= s > patch updates the testbbdev application to handle the endianness > conversion as directed by the the driver being used. >=20 > If the driver supports big endian data processing, conversion from little > endian to big is handled by the testbbdev application. >=20 > Signed-off-by: Nipun Gupta > --- > app/test-bbdev/test_bbdev_perf.c | 62 > ++++++++++++++++++++++++++++++++ > 1 file changed, 62 insertions(+) >=20 > diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test- > bbdev/test_bbdev_perf.c > index 469597b8b3..a0f565ee3f 100644 > --- a/app/test-bbdev/test_bbdev_perf.c > +++ b/app/test-bbdev/test_bbdev_perf.c > @@ -227,6 +227,64 @@ clear_soft_out_cap(uint32_t *op_flags) > *op_flags &=3D ~RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT; > } >=20 > +static inline void > +reverse_op(struct op_data_entries *op) Please refer explicitly to byte endianness in that function name + comment > +{ > + uint8_t nb_segs =3D op->nb_segments; > + uint32_t *data, len; > + int complete, rem, i, j; > + uint8_t *rem_data, temp; > + > + /* Validate each mbuf segment length */ =09 Unsure the comment is correct. The code is inverting the byte endianness fo= r all segments of the mbuf.=20 > + for (i =3D 0; i < nb_segs; ++i) { > + len =3D op->segments[i].length; > + data =3D op->segments[i].addr; > + > + /* Swap complete u32 bytes */ > + complete =3D len / 4; > + for (j =3D 0; j < complete; j++) > + data[j] =3D rte_bswap32(data[j]); > + > + /* Swap any remaining data for last seg */ > + if (i =3D=3D (nb_segs - 1)) { > + rem =3D len % 4; > + rem_data =3D (uint8_t *)&data[j]; > + for (j =3D 0; j < rem/2; j++) { > + temp =3D rem_data[j]; > + rem_data[j] =3D rem_data[rem - j - 1]; > + rem_data[rem - j - 1] =3D temp; > + } > + } > + } > +} > + > +static inline void > +reverse_all_ops(void) Same comment as above, refer explicitly to byte endianness > +{ > + unsigned int nb_inputs, nb_soft_outputs, nb_hard_outputs, > + nb_harq_inputs, nb_harq_outputs; > + > + nb_inputs =3D test_vector.entries[DATA_INPUT].nb_segments; > + if (nb_inputs) > + reverse_op(&test_vector.entries[DATA_INPUT]); > + > + nb_soft_outputs =3D > test_vector.entries[DATA_SOFT_OUTPUT].nb_segments; > + if (nb_soft_outputs) > + reverse_op(&test_vector.entries[DATA_SOFT_OUTPUT]); > + > + nb_hard_outputs =3D > test_vector.entries[DATA_HARD_OUTPUT].nb_segments; > + if (nb_hard_outputs) > + reverse_op(&test_vector.entries[DATA_HARD_OUTPUT]); > + > + nb_harq_inputs =3D > test_vector.entries[DATA_HARQ_INPUT].nb_segments; > + if (nb_harq_inputs) > + reverse_op(&test_vector.entries[DATA_HARQ_INPUT]); > + > + nb_harq_outputs =3D > test_vector.entries[DATA_HARQ_OUTPUT].nb_segments; > + if (nb_harq_outputs) > + reverse_op(&test_vector.entries[DATA_HARQ_OUTPUT]); Any reason not to use a for loop through all the enums of these 5 data type= s Ie.=20 enum op_data_type { DATA_INPUT =3D 0, DATA_SOFT_OUTPUT, DATA_HARD_OUTPUT, DATA_HARQ_INPUT, DATA_HARQ_OUTPUT, DATA_NUM_TYPES, }; > +} > + > static int > check_dev_cap(const struct rte_bbdev_info *dev_info) { @@ -234,6 +292,7 > @@ check_dev_cap(const struct rte_bbdev_info *dev_info) > unsigned int nb_inputs, nb_soft_outputs, nb_hard_outputs, > nb_harq_inputs, nb_harq_outputs; > const struct rte_bbdev_op_cap *op_cap =3D dev_info->drv.capabilities; > + uint8_t be_data =3D dev_info->drv.support_be_data; >=20 > nb_inputs =3D test_vector.entries[DATA_INPUT].nb_segments; > nb_soft_outputs =3D > test_vector.entries[DATA_SOFT_OUTPUT].nb_segments; > @@ -245,6 +304,9 @@ check_dev_cap(const struct rte_bbdev_info > *dev_info) > if (op_cap->type !=3D test_vector.op_type) > continue; >=20 > + if (be_data) > + reverse_all_ops(); > + > if (op_cap->type =3D=3D RTE_BBDEV_OP_TURBO_DEC) { > const struct rte_bbdev_op_cap_turbo_dec *cap =3D > &op_cap->cap.turbo_dec; > -- > 2.17.1